home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK2.toast / Development Kits (Disc 2) / QuickTime / QuickTime™ 2.5 / Interfaces for Programmers / CIncludes / QuickTimeComponents.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-26  |  111.2 KB  |  2,626 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        QuickTimeComponents.h
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    Technology:    
  7.                  Release:    QuickTime 2.5 interfaces to use with ETO #20
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __QUICKTIMECOMPONENTS__
  19. #define __QUICKTIMECOMPONENTS__
  20.  
  21. #ifndef __COMPONENTS__
  22. #include <Components.h>
  23. #endif
  24. #ifndef __IMAGECOMPRESSION__
  25. #include <ImageCompression.h>
  26. #endif
  27. #ifndef __MOVIES__
  28. #include <Movies.h>
  29. #endif
  30. #ifndef __QUICKDRAW__
  31. #include <Quickdraw.h>
  32. #endif
  33. #ifndef __VIDEO__
  34. #include <Video.h>
  35. #endif
  36. #ifndef __MEMORY__
  37. #include <Memory.h>
  38. #endif
  39. #ifndef __SOUND__
  40. #include <Sound.h>
  41. #endif
  42. #ifndef __QUICKTIMEMUSIC__
  43. #include <QuickTimeMusic.h>
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT_SUPPORTED
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_ALIGN_SUPPORTED
  55. #pragma options align=mac68k
  56. #endif
  57.  
  58.  
  59. enum {
  60.     clockComponentType            = 'clok',
  61.     systemTickClock                = 'tick',                        /* subtype: 60ths since boot        */
  62.     systemSecondClock            = 'seco',                        /* subtype: seconds since 1904        */
  63.     systemMillisecondClock        = 'mill',                        /* subtype: 1000ths since boot        */
  64.     systemMicrosecondClock        = 'micr'                        /* subtype: 1000000ths since boot    */
  65. };
  66.  
  67.  
  68. enum {
  69.     kClockRateIsLinear            = 1,
  70.     kClockImplementsCallBacks    = 2
  71. };
  72.  
  73. #if OLDROUTINENAMES
  74. #define GetClockTime(aClock, out) ClockGetTime(aClock, out)
  75. #endif
  76. /** These are Clock procedures **/
  77. extern pascal ComponentResult ClockGetTime(ComponentInstance aClock, TimeRecord *out)
  78.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  79.  
  80. extern pascal QTCallBack ClockNewCallBack(ComponentInstance aClock, TimeBase tb, short callBackType)
  81.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  82.  
  83. extern pascal ComponentResult ClockDisposeCallBack(ComponentInstance aClock, QTCallBack cb)
  84.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  85.  
  86. extern pascal ComponentResult ClockCallMeWhen(ComponentInstance aClock, QTCallBack cb, long param1, long param2, long param3)
  87.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0004, 0x7000, 0xA82A);
  88.  
  89. extern pascal ComponentResult ClockCancelCallBack(ComponentInstance aClock, QTCallBack cb)
  90.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  91.  
  92. extern pascal ComponentResult ClockRateChanged(ComponentInstance aClock, QTCallBack cb)
  93.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  94.  
  95. extern pascal ComponentResult ClockTimeChanged(ComponentInstance aClock, QTCallBack cb)
  96.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  97.  
  98. extern pascal ComponentResult ClockSetTimeBase(ComponentInstance aClock, TimeBase tb)
  99.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  100.  
  101. extern pascal ComponentResult ClockStartStopChanged(ComponentInstance aClock, QTCallBack cb, Boolean startChanged, Boolean stopChanged)
  102.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  103.  
  104. extern pascal ComponentResult ClockGetRate(ComponentInstance aClock, Fixed *rate)
  105.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  106.  
  107.  
  108. enum {
  109.     StandardCompressionType        = 'scdi',
  110.     StandardCompressionSubType    = 'imag'
  111. };
  112.  
  113. typedef pascal Boolean (*SCModalFilterProcPtr)(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refcon);
  114. typedef pascal short (*SCModalHookProcPtr)(DialogPtr theDialog, short itemHit, void *params, long refcon);
  115.  
  116. #if GENERATINGCFM
  117. typedef UniversalProcPtr SCModalFilterUPP;
  118. typedef UniversalProcPtr SCModalHookUPP;
  119. #else
  120. typedef SCModalFilterProcPtr SCModalFilterUPP;
  121. typedef SCModalHookProcPtr SCModalHookUPP;
  122. #endif
  123. /*    Preference flags.*/
  124.  
  125. enum {
  126.     scListEveryCodec            = 1L << 1,
  127.     scAllowZeroFrameRate        = 1L << 2,
  128.     scAllowZeroKeyFrameRate        = 1L << 3,
  129.     scShowBestDepth                = 1L << 4,
  130.     scUseMovableModal            = 1L << 5
  131. };
  132.  
  133. /*    Possible test flags for setting test image.*/
  134.  
  135. enum {
  136.     scPreferCropping            = 1 << 0,
  137.     scPreferScaling                = 1 << 1,
  138.     scPreferScalingAndCropping    = scPreferScaling | scPreferCropping
  139. };
  140.  
  141. /*    Dimensions of the image preview box.*/
  142.  
  143. enum {
  144.     scTestImageWidth            = 80,
  145.     scTestImageHeight            = 80
  146. };
  147.  
  148. /*    Possible items returned by hookProc.*/
  149.  
  150. enum {
  151.     scOKItem                    = 1,
  152.     scCancelItem                = 2,
  153.     scCustomItem                = 3
  154. };
  155.  
  156. /*    Result returned when user cancelled.*/
  157.  
  158. enum {
  159.     scUserCancelled                = 1
  160. };
  161.  
  162. /* Component selectors*/
  163.  
  164. enum {
  165.     scPositionRect                = 2,
  166.     scPositionDialog            = 3,
  167.     scSetTestImagePictHandle    = 4,
  168.     scSetTestImagePictFile        = 5,
  169.     scSetTestImagePixMap        = 6,
  170.     scGetBestDeviceRect            = 7,
  171.     scRequestImageSettings        = 10,
  172.     scCompressImage                = 11,
  173.     scCompressPicture            = 12,
  174.     scCompressPictureFile        = 13,
  175.     scRequestSequenceSettings    = 14,
  176.     scCompressSequenceBegin        = 15,
  177.     scCompressSequenceFrame        = 16,
  178.     scCompressSequenceEnd        = 17,
  179.     scDefaultPictHandleSettings    = 18,
  180.     scDefaultPictFileSettings    = 19,
  181.     scDefaultPixMapSettings        = 20,
  182.     scGetInfo                    = 21,
  183.     scSetInfo                    = 22,
  184.     scNewGWorld                    = 23
  185. };
  186.  
  187. /*    Get/SetInfo structures.*/
  188. struct SCSpatialSettings {
  189.     CodecType                         codecType;
  190.     CodecComponent                     codec;
  191.     short                             depth;
  192.     CodecQ                             spatialQuality;
  193. };
  194. typedef struct SCSpatialSettings SCSpatialSettings;
  195.  
  196. struct SCTemporalSettings {
  197.     CodecQ                             temporalQuality;
  198.     Fixed                             frameRate;
  199.     long                             keyFrameRate;
  200. };
  201. typedef struct SCTemporalSettings SCTemporalSettings;
  202.  
  203. struct SCDataRateSettings {
  204.     long                             dataRate;
  205.     long                             frameDuration;
  206.     CodecQ                             minSpatialQuality;
  207.     CodecQ                             minTemporalQuality;
  208. };
  209. typedef struct SCDataRateSettings SCDataRateSettings;
  210.  
  211. struct SCExtendedProcs {
  212.     SCModalFilterUPP                 filterProc;
  213.     SCModalHookUPP                     hookProc;
  214.     long                             refcon;
  215.     Str31                             customName;
  216. };
  217. typedef struct SCExtendedProcs SCExtendedProcs;
  218.  
  219. /*    Get/SetInfo selectors*/
  220.  
  221. enum {
  222.     scSpatialSettingsType        = 'sptl',                        /* pointer to SCSpatialSettings struct*/
  223.     scTemporalSettingsType        = 'tprl',                        /* pointer to SCTemporalSettings struct*/
  224.     scDataRateSettingsType        = 'drat',                        /* pointer to SCDataRateSettings struct*/
  225.     scColorTableType            = 'clut',                        /* pointer to CTabHandle*/
  226.     scProgressProcType            = 'prog',                        /* pointer to ProgressRecord struct*/
  227.     scExtendedProcsType            = 'xprc',                        /* pointer to SCExtendedProcs struct*/
  228.     scPreferenceFlagsType        = 'pref',                        /* pointer to long*/
  229.     scSettingsStateType            = 'ssta',                        /* pointer to Handle*/
  230.     scSequenceIDType            = 'sequ',                        /* pointer to ImageSequence*/
  231.     scWindowPositionType        = 'wndw',                        /* pointer to Point*/
  232.     scCodecFlagsType            = 'cflg',                        /* pointer to CodecFlags*/
  233.     scCodecSettingsType            = 'cdec',                        /* pointer to Handle*/
  234.     scForceKeyValueType            = 'ksim'                        /* pointer to long*/
  235. };
  236.  
  237. /*    scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.*/
  238. struct SCParams {
  239.     long                             flags;
  240.     CodecType                         theCodecType;
  241.     CodecComponent                     theCodec;
  242.     CodecQ                             spatialQuality;
  243.     CodecQ                             temporalQuality;
  244.     short                             depth;
  245.     Fixed                             frameRate;
  246.     long                             keyFrameRate;
  247.     long                             reserved1;
  248.     long                             reserved2;
  249. };
  250. typedef struct SCParams SCParams;
  251.  
  252.  
  253. enum {
  254.     scGetCompression            = 1,
  255.     scShowMotionSettings        = 1L << 0,
  256.     scSettingsChangedItem        = -1
  257. };
  258.  
  259.  
  260. enum {
  261.     scCompressFlagIgnoreIdenticalFrames = 1
  262. };
  263.  
  264. #define SCGetCompression(ci, params, where) SCGetCompressionExtended(ci,params,where,0,0,0,0)
  265. /** These are Progress procedures **/
  266. extern pascal ComponentResult SCGetCompressionExtended(ComponentInstance ci, SCParams *params, Point where, SCModalFilterUPP filterProc, SCModalHookUPP hookProc, long refcon, StringPtr customName)
  267.  FIVEWORDINLINE(0x2F3C, 0x0018, 0x0001, 0x7000, 0xA82A);
  268.  
  269. extern pascal ComponentResult SCPositionRect(ComponentInstance ci, Rect *rp, Point *where)
  270.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  271.  
  272. extern pascal ComponentResult SCPositionDialog(ComponentInstance ci, short id, Point *where)
  273.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0003, 0x7000, 0xA82A);
  274.  
  275. extern pascal ComponentResult SCSetTestImagePictHandle(ComponentInstance ci, PicHandle testPict, Rect *testRect, short testFlags)
  276.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0004, 0x7000, 0xA82A);
  277.  
  278. extern pascal ComponentResult SCSetTestImagePictFile(ComponentInstance ci, short testFileRef, Rect *testRect, short testFlags)
  279.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  280.  
  281. extern pascal ComponentResult SCSetTestImagePixMap(ComponentInstance ci, PixMapHandle testPixMap, Rect *testRect, short testFlags)
  282.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0006, 0x7000, 0xA82A);
  283.  
  284. extern pascal ComponentResult SCGetBestDeviceRect(ComponentInstance ci, Rect *r)
  285.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  286.  
  287. extern pascal ComponentResult SCRequestImageSettings(ComponentInstance ci)
  288.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A);
  289.  
  290. extern pascal ComponentResult SCCompressImage(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc, Handle *data)
  291.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x000B, 0x7000, 0xA82A);
  292.  
  293. extern pascal ComponentResult SCCompressPicture(ComponentInstance ci, PicHandle srcPicture, PicHandle dstPicture)
  294.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  295.  
  296. extern pascal ComponentResult SCCompressPictureFile(ComponentInstance ci, short srcRefNum, short dstRefNum)
  297.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  298.  
  299. extern pascal ComponentResult SCRequestSequenceSettings(ComponentInstance ci)
  300.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x000E, 0x7000, 0xA82A);
  301.  
  302. extern pascal ComponentResult SCCompressSequenceBegin(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc)
  303.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000F, 0x7000, 0xA82A);
  304.  
  305. extern pascal ComponentResult SCCompressSequenceFrame(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, Handle *data, long *dataSize, short *notSyncFlag)
  306.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0010, 0x7000, 0xA82A);
  307.  
  308. extern pascal ComponentResult SCCompressSequenceEnd(ComponentInstance ci)
  309.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  310.  
  311. extern pascal ComponentResult SCDefaultPictHandleSettings(ComponentInstance ci, PicHandle srcPicture, short motion)
  312.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0012, 0x7000, 0xA82A);
  313.  
  314. extern pascal ComponentResult SCDefaultPictFileSettings(ComponentInstance ci, short srcRef, short motion)
  315.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  316.  
  317. extern pascal ComponentResult SCDefaultPixMapSettings(ComponentInstance ci, PixMapHandle src, short motion)
  318.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0014, 0x7000, 0xA82A);
  319.  
  320. extern pascal ComponentResult SCGetInfo(ComponentInstance ci, OSType infoType, void *info)
  321.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0015, 0x7000, 0xA82A);
  322.  
  323. extern pascal ComponentResult SCSetInfo(ComponentInstance ci, OSType infoType, void *info)
  324.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  325.  
  326. extern pascal ComponentResult SCNewGWorld(ComponentInstance ci, GWorldPtr *gwp, Rect *rp, GWorldFlags flags)
  327.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  328.  
  329. extern pascal ComponentResult SCSetCompressFlags(ComponentInstance ci, long flags)
  330.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  331.  
  332. extern pascal ComponentResult SCGetCompressFlags(ComponentInstance ci, long *flags)
  333.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  334.  
  335.  
  336. enum {
  337.     TweenComponentType            = 'twen'
  338. };
  339.  
  340. typedef ComponentInstance TweenerComponent;
  341. typedef struct TweenRecord TweenRecord;
  342. typedef pascal ComponentResult (*TweenerDataProcPtr)(TweenRecord *tr, void *tweenData, long tweenDataSize, long dataDescriptionSeed, Handle dataDescription, ICMCompletionProcRecordPtr asyncCompletionProc, ProcPtr transferProc, void *refCon);
  343.  
  344. #if GENERATINGCFM
  345. typedef UniversalProcPtr TweenerDataUPP;
  346. #else
  347. typedef TweenerDataProcPtr TweenerDataUPP;
  348. #endif
  349. struct TweenRecord {
  350.     long                             version;
  351.  
  352.     QTAtomContainer                 container;
  353.     QTAtom                             tweenAtom;
  354.     QTAtom                             dataAtom;
  355.     Fixed                             percent;
  356.  
  357.     TweenerDataUPP                     dataProc;
  358.  
  359.     void *                            private1;
  360.     void *                            private2;
  361. };
  362.  
  363. extern pascal ComponentResult TweenerInitialize(TweenerComponent tc, QTAtomContainer container, QTAtom tweenAtom, QTAtom dataAtom)
  364.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  365.  
  366. extern pascal ComponentResult TweenerDoTween(TweenerComponent tc, TweenRecord *tr)
  367.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A);
  368.  
  369. extern pascal ComponentResult TweenerReset(TweenerComponent tc)
  370.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A);
  371.  
  372.  
  373. enum {
  374.     TCSourceRefNameType            = 'name'
  375. };
  376.  
  377.  
  378. enum {
  379.     tcDropFrame                    = 1 << 0,
  380.     tc24HourMax                    = 1 << 1,
  381.     tcNegTimesOK                = 1 << 2,
  382.     tcCounter                    = 1 << 3
  383. };
  384.  
  385. struct TimeCodeDef {
  386.     long                             flags;                        /* drop-frame, etc.*/
  387.     TimeScale                         fTimeScale;                    /* time scale of frameDuration (eg. 2997)*/
  388.     TimeValue                         frameDuration;                /* duration of each frame (eg. 100)*/
  389.     UInt8                             numFrames;                    /* frames/sec for timecode (eg. 30) OR frames/tick for counter mode*/
  390.     UInt8                             padding;                    /* unused padding byte*/
  391. };
  392. typedef struct TimeCodeDef TimeCodeDef;
  393.  
  394.  
  395. enum {
  396.     tctNegFlag                    = 0x80                            /* negative bit is in minutes*/
  397. };
  398.  
  399. struct TimeCodeTime {
  400.     UInt8                             hours;
  401.     UInt8                             minutes;
  402.     UInt8                             seconds;
  403.     UInt8                             frames;
  404. };
  405. typedef struct TimeCodeTime TimeCodeTime;
  406.  
  407. struct TimeCodeCounter {
  408.     long                             counter;
  409. };
  410. typedef struct TimeCodeCounter TimeCodeCounter;
  411.  
  412. union TimeCodeRecord {
  413.     TimeCodeTime                     t;
  414.     TimeCodeCounter                 c;
  415. };
  416. typedef union TimeCodeRecord TimeCodeRecord;
  417.  
  418. struct TimeCodeDescription {
  419.     long                             descSize;                    /* standard sample description header*/
  420.     long                             dataFormat;
  421.     long                             resvd1;
  422.     short                             resvd2;
  423.     short                             dataRefIndex;
  424.     long                             flags;                        /* timecode specific stuff*/
  425.     TimeCodeDef                     timeCodeDef;
  426.     long                             srcRef[1];
  427. };
  428. typedef struct TimeCodeDescription TimeCodeDescription;
  429.  
  430. typedef TimeCodeDescription *TimeCodeDescriptionPtr;
  431. typedef TimeCodeDescriptionPtr *TimeCodeDescriptionHandle;
  432.  
  433. enum {
  434.     tcdfShowTimeCode            = 1 << 0
  435. };
  436.  
  437. struct TCTextOptions {
  438.     short                             txFont;
  439.     short                             txFace;
  440.     short                             txSize;
  441.     RGBColor                         foreColor;
  442.     RGBColor                         backColor;
  443. };
  444. typedef struct TCTextOptions TCTextOptions;
  445.  
  446. typedef TCTextOptions *TCTextOptionsPtr;
  447. extern pascal HandlerError TCGetCurrentTimeCode(MediaHandler mh, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, UserData *srcRefH)
  448.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0101, 0x7000, 0xA82A);
  449.  
  450. extern pascal HandlerError TCGetTimeCodeAtTime(MediaHandler mh, TimeValue mediaTime, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcdata, UserData *srcRefH)
  451.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0102, 0x7000, 0xA82A);
  452.  
  453. extern pascal HandlerError TCTimeCodeToString(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, StringPtr tcStr)
  454.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  455.  
  456. extern pascal HandlerError TCTimeCodeToFrameNumber(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, long *frameNumber)
  457.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0104, 0x7000, 0xA82A);
  458.  
  459. extern pascal HandlerError TCFrameNumberToTimeCode(MediaHandler mh, long frameNumber, TimeCodeDef *tcdef, TimeCodeRecord *tcrec)
  460.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
  461.  
  462. extern pascal HandlerError TCGetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData *srefH)
  463.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  464.  
  465. extern pascal HandlerError TCSetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData srefH)
  466.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  467.  
  468. extern pascal HandlerError TCSetTimeCodeFlags(MediaHandler mh, long flags, long flagsMask)
  469.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  470.  
  471. extern pascal HandlerError TCGetTimeCodeFlags(MediaHandler mh, long *flags)
  472.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  473.  
  474. extern pascal HandlerError TCSetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  475.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  476.  
  477. extern pascal HandlerError TCGetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  478.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  479.  
  480. typedef ComponentInstance MovieImportComponent;
  481. typedef ComponentInstance MovieExportComponent;
  482.  
  483. enum {
  484.     MovieImportType                = 'eat ',
  485.     MovieExportType                = 'spit'
  486. };
  487.  
  488.  
  489. enum {
  490.     canMovieImportHandles        = 1 << 0,
  491.     canMovieImportFiles            = 1 << 1,
  492.     hasMovieImportUserInterface    = 1 << 2,
  493.     canMovieExportHandles        = 1 << 3,
  494.     canMovieExportFiles            = 1 << 4,
  495.     hasMovieExportUserInterface    = 1 << 5,
  496.     dontAutoFileMovieImport        = 1 << 6,
  497.     canMovieExportAuxDataHandle    = 1 << 7,
  498.     canMovieImportValidateHandles = 1 << 8,
  499.     canMovieImportValidateFile    = 1 << 9,
  500.     dontRegisterWithEasyOpen    = 1 << 10,
  501.     canMovieImportInPlace        = 1 << 11,
  502.     movieImportSubTypeIsFileExtension = 1 << 12
  503. };
  504.  
  505.  
  506. enum {
  507.     movieImportCreateTrack        = 1,
  508.     movieImportInParallel        = 2,
  509.     movieImportMustUseTrack        = 4
  510. };
  511.  
  512.  
  513. enum {
  514.     movieImportResultUsedMultipleTracks = 8
  515. };
  516.  
  517.  
  518. enum {
  519.     kMovieExportTextOnly        = 0,
  520.     kMovieExportAbsoluteTime    = 1,
  521.     kMovieExportRelativeTime    = 2
  522. };
  523.  
  524.  
  525. enum {
  526.     kMIDIImportSilenceBefore    = 1 << 0,
  527.     kMIDIImportSilenceAfter        = 1 << 1,
  528.     kMIDIImport20Playable        = 1 << 2,
  529.     kMIDIImportWantLyrics        = 1 << 3
  530. };
  531.  
  532. extern pascal ComponentResult MovieImportHandle(MovieImportComponent ci, Handle dataH, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  533.  FIVEWORDINLINE(0x2F3C, 0x0020, 0x0001, 0x7000, 0xA82A);
  534.  
  535. extern pascal ComponentResult MovieImportFile(MovieImportComponent ci, const FSSpec *theFile, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  536.  FIVEWORDINLINE(0x2F3C, 0x0020, 0x0002, 0x7000, 0xA82A);
  537.  
  538. extern pascal ComponentResult MovieImportSetSampleDuration(MovieImportComponent ci, TimeValue duration, TimeScale scale)
  539.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  540.  
  541. extern pascal ComponentResult MovieImportSetSampleDescription(MovieImportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  542.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  543.  
  544. extern pascal ComponentResult MovieImportSetMediaFile(MovieImportComponent ci, AliasHandle alias)
  545.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  546.  
  547. extern pascal ComponentResult MovieImportSetDimensions(MovieImportComponent ci, Fixed width, Fixed height)
  548.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  549.  
  550. extern pascal ComponentResult MovieImportSetChunkSize(MovieImportComponent ci, long chunkSize)
  551.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  552.  
  553. extern pascal ComponentResult MovieImportSetProgressProc(MovieImportComponent ci, MovieProgressUPP proc, long refcon)
  554.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A);
  555.  
  556. extern pascal ComponentResult MovieImportSetAuxiliaryData(MovieImportComponent ci, Handle data, OSType handleType)
  557.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  558.  
  559. extern pascal ComponentResult MovieImportSetFromScrap(MovieImportComponent ci, Boolean fromScrap)
  560.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  561.  
  562. extern pascal ComponentResult MovieImportDoUserDialog(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *canceled)
  563.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  564.  
  565. extern pascal ComponentResult MovieImportSetDuration(MovieImportComponent ci, TimeValue duration)
  566.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  567.  
  568. extern pascal ComponentResult MovieImportGetAuxiliaryDataType(MovieImportComponent ci, OSType *auxType)
  569.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  570.  
  571. extern pascal ComponentResult MovieImportValidate(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *valid)
  572.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000E, 0x7000, 0xA82A);
  573.  
  574. extern pascal ComponentResult MovieImportGetFileType(MovieImportComponent ci, OSType *fileType)
  575.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  576.  
  577. extern pascal ComponentResult MovieImportDataRef(MovieImportComponent ci, Handle dataRef, OSType dataRefType, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  578.  FIVEWORDINLINE(0x2F3C, 0x0024, 0x0010, 0x7000, 0xA82A);
  579.  
  580. extern pascal ComponentResult MovieImportGetSampleDescription(MovieImportComponent ci, SampleDescriptionHandle *desc, OSType *mediaType)
  581.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0011, 0x7000, 0xA82A);
  582.  
  583. extern pascal ComponentResult MovieExportToHandle(MovieExportComponent ci, Handle dataH, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  584.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0080, 0x7000, 0xA82A);
  585.  
  586. extern pascal ComponentResult MovieExportToFile(MovieExportComponent ci, const FSSpec *theFile, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  587.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0081, 0x7000, 0xA82A);
  588.  
  589. extern pascal ComponentResult MovieExportGetAuxiliaryData(MovieExportComponent ci, Handle dataH, OSType *handleType)
  590.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0083, 0x7000, 0xA82A);
  591.  
  592. extern pascal ComponentResult MovieExportSetProgressProc(MovieExportComponent ci, MovieProgressUPP proc, long refcon)
  593.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0084, 0x7000, 0xA82A);
  594.  
  595. extern pascal ComponentResult MovieExportSetSampleDescription(MovieExportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  596.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0085, 0x7000, 0xA82A);
  597.  
  598. extern pascal ComponentResult MovieExportDoUserDialog(MovieExportComponent ci, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration, Boolean *canceled)
  599.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0086, 0x7000, 0xA82A);
  600.  
  601. extern pascal ComponentResult MovieExportGetCreatorType(MovieExportComponent ci, OSType *creator)
  602.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  603.  
  604. /* Text Export Display Info data structure*/
  605. struct TextDisplayData {
  606.     long                             displayFlags;
  607.     long                             textJustification;
  608.     RGBColor                         bgColor;
  609.     Rect                             textBox;
  610.  
  611.     short                             beginHilite;
  612.     short                             endHilite;
  613.     RGBColor                         hiliteColor;
  614.     Boolean                         doHiliteColor;
  615.     SInt8                             filler;
  616.     TimeValue                         scrollDelayDur;
  617.     Point                             dropShadowOffset;
  618.     short                             dropShadowTransparency;
  619. };
  620. typedef struct TextDisplayData TextDisplayData;
  621.  
  622. typedef ComponentInstance TextExportComponent;
  623. extern pascal ComponentResult TextExportGetDisplayData(TextExportComponent ci, TextDisplayData *textDisplay)
  624.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  625.  
  626. extern pascal ComponentResult TextExportGetTimeFraction(TextExportComponent ci, long *movieTimeFraction)
  627.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  628.  
  629. extern pascal ComponentResult TextExportSetTimeFraction(TextExportComponent ci, long movieTimeFraction)
  630.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  631.  
  632. extern pascal ComponentResult TextExportGetSettings(TextExportComponent ci, long *setting)
  633.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  634.  
  635. extern pascal ComponentResult TextExportSetSettings(TextExportComponent ci, long setting)
  636.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  637.  
  638. extern pascal ComponentResult MIDIImportGetSettings(TextExportComponent ci, long *setting)
  639.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  640.  
  641. extern pascal ComponentResult MIDIImportSetSettings(TextExportComponent ci, long setting)
  642.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  643.  
  644. /*
  645. **************
  646.  
  647.     File Preview Components
  648.  
  649. **************
  650. */
  651. typedef ComponentInstance pnotComponent;
  652.  
  653. enum {
  654.     pnotComponentWantsEvents    = 1,
  655.     pnotComponentNeedsNoCache    = 2
  656. };
  657.  
  658.  
  659. enum {
  660.     ShowFilePreviewComponentType = 'pnot',
  661.     CreateFilePreviewComponentType = 'pmak'
  662. };
  663.  
  664. extern pascal ComponentResult PreviewShowData(pnotComponent p, OSType dataType, Handle data, const Rect *inHere)
  665.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  666.  
  667. extern pascal ComponentResult PreviewMakePreview(pnotComponent p, OSType *previewType, Handle *previewResult, const FSSpec *sourceFile, ICMProgressProcRecordPtr progress)
  668.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  669.  
  670. extern pascal ComponentResult PreviewMakePreviewReference(pnotComponent p, OSType *previewType, short *resID, const FSSpec *sourceFile)
  671.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0003, 0x7000, 0xA82A);
  672.  
  673. extern pascal ComponentResult PreviewEvent(pnotComponent p, EventRecord *e, Boolean *handledEvent)
  674.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  675.  
  676. typedef pascal void (*DataHCompletionProcPtr)(Ptr request, long refcon, OSErr err);
  677.  
  678. #if GENERATINGCFM
  679. typedef UniversalProcPtr DataHCompletionUPP;
  680. #else
  681. typedef DataHCompletionProcPtr DataHCompletionUPP;
  682. #endif
  683.  
  684. enum {
  685.     kDataHCanRead                = 1L << 0,
  686.     kDataHSpecialRead            = 1L << 1,
  687.     kDataHSpecialReadFile        = 1L << 2,
  688.     kDataHCanWrite                = 1L << 3,
  689.     kDataHSpecialWrite            = 1 << 4,
  690.     kDataHSpecialWriteFile        = 1 << 5,
  691.     kDataHCanStreamingWrite        = 1 << 6,
  692.     kDataHMustCheckDataRef        = 1 << 7
  693. };
  694.  
  695. struct DataHVolumeListRecord {
  696.     short                             vRefNum;
  697.     long                             flags;
  698. };
  699. typedef struct DataHVolumeListRecord DataHVolumeListRecord;
  700.  
  701. typedef DataHVolumeListRecord *DataHVolumeListPtr;
  702. typedef DataHVolumeListPtr *DataHVolumeList;
  703.  
  704. enum {
  705.     kDataHExtendedSchedule        = 'xtnd'
  706. };
  707.  
  708. struct DataHScheduleRecord {
  709.     TimeRecord                         timeNeededBy;
  710.     long                             extendedID;                    /* always is kDataHExtendedSchedule*/
  711.     long                             extendedVers;                /* always set to 0*/
  712.     Fixed                             priority;                    /* 100.0 or more means must have. lower numbers…*/
  713. };
  714. typedef struct DataHScheduleRecord DataHScheduleRecord;
  715.  
  716. typedef DataHScheduleRecord *DataHSchedulePtr;
  717. extern pascal ComponentResult DataHGetData(DataHandler dh, Handle h, long hOffset, long offset, long size)
  718.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  719.  
  720. extern pascal ComponentResult DataHPutData(DataHandler dh, Handle h, long hOffset, long *offset, long size)
  721.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0003, 0x7000, 0xA82A);
  722.  
  723. extern pascal ComponentResult DataHFlushData(DataHandler dh)
  724.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A);
  725.  
  726. extern pascal ComponentResult DataHOpenForWrite(DataHandler dh)
  727.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  728.  
  729. extern pascal ComponentResult DataHCloseForWrite(DataHandler dh)
  730.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  731.  
  732. extern pascal ComponentResult DataHOpenForRead(DataHandler dh)
  733.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0008, 0x7000, 0xA82A);
  734.  
  735. extern pascal ComponentResult DataHCloseForRead(DataHandler dh)
  736.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A);
  737.  
  738. extern pascal ComponentResult DataHSetDataRef(DataHandler dh, Handle dataRef)
  739.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  740.  
  741. extern pascal ComponentResult DataHGetDataRef(DataHandler dh, Handle *dataRef)
  742.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
  743.  
  744. extern pascal ComponentResult DataHCompareDataRef(DataHandler dh, Handle dataRef, Boolean *equal)
  745.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  746.  
  747. extern pascal ComponentResult DataHTask(DataHandler dh)
  748.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  749.  
  750. extern pascal ComponentResult DataHScheduleData(DataHandler dh, Ptr PlaceToPutDataPtr, long FileOffset, long DataSize, long RefCon, DataHSchedulePtr scheduleRec, DataHCompletionUPP CompletionRtn)
  751.  FIVEWORDINLINE(0x2F3C, 0x0018, 0x000E, 0x7000, 0xA82A);
  752.  
  753. extern pascal ComponentResult DataHFinishData(DataHandler dh, Ptr PlaceToPutDataPtr, Boolean Cancel)
  754.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x000F, 0x7000, 0xA82A);
  755.  
  756. extern pascal ComponentResult DataHFlushCache(DataHandler dh)
  757.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  758.  
  759. extern pascal ComponentResult DataHResolveDataRef(DataHandler dh, Handle theDataRef, Boolean *wasChanged, Boolean userInterfaceAllowed)
  760.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0011, 0x7000, 0xA82A);
  761.  
  762. extern pascal ComponentResult DataHGetFileSize(DataHandler dh, long *fileSize)
  763.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  764.  
  765. extern pascal ComponentResult DataHCanUseDataRef(DataHandler dh, Handle dataRef, long *useFlags)
  766.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A);
  767.  
  768. extern pascal ComponentResult DataHGetVolumeList(DataHandler dh, DataHVolumeList *volumeList)
  769.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  770.  
  771. extern pascal ComponentResult DataHWrite(DataHandler dh, Ptr data, long offset, long size, DataHCompletionUPP completion, long refCon)
  772.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0015, 0x7000, 0xA82A);
  773.  
  774. extern pascal ComponentResult DataHPreextend(DataHandler dh, long maxToAdd, long *spaceAdded)
  775.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  776.  
  777. extern pascal ComponentResult DataHSetFileSize(DataHandler dh, long fileSize)
  778.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A);
  779.  
  780. extern pascal ComponentResult DataHGetFreeSpace(DataHandler dh, unsigned long *freeSize)
  781.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  782.  
  783. extern pascal ComponentResult DataHCreateFile(DataHandler dh, OSType creator, Boolean deleteExisting)
  784.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  785.  
  786. extern pascal ComponentResult DataHGetPreferredBlockSize(DataHandler dh, long *blockSize)
  787.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  788.  
  789. extern pascal ComponentResult DataHGetDeviceIndex(DataHandler dh, long *deviceIndex)
  790.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  791.  
  792. extern pascal ComponentResult DataHIsStreamingDataHandler(DataHandler dh, Boolean *yes)
  793.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  794.  
  795. extern pascal ComponentResult DataHGetDataInBuffer(DataHandler dh, long startOffset, long *size)
  796.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A);
  797.  
  798. extern pascal ComponentResult DataHGetScheduleAheadTime(DataHandler dh, long *millisecs)
  799.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  800.  
  801. extern pascal ComponentResult DataHSetCacheSizeLimit(DataHandler dh, Size cacheSizeLimit)
  802.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  803.  
  804. extern pascal ComponentResult DataHGetCacheSizeLimit(DataHandler dh, Size *cacheSizeLimit)
  805.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A);
  806.  
  807. extern pascal ComponentResult DataHGetMovie(DataHandler dh, Movie *theMovie, short *id)
  808.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  809.  
  810. extern pascal ComponentResult DataHAddMovie(DataHandler dh, Movie theMovie, short *id)
  811.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0022, 0x7000, 0xA82A);
  812.  
  813. extern pascal ComponentResult DataHUpdateMovie(DataHandler dh, Movie theMovie, short id)
  814.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A);
  815.  
  816. extern pascal ComponentResult DataHDoesBuffer(DataHandler dh, Boolean *buffersReads, Boolean *buffersWrites)
  817.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  818.  
  819. extern pascal ComponentResult DataHGetFileName(DataHandler dh, Str255 str)
  820.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  821.  
  822. extern pascal ComponentResult DataHPlaybackHints(DataHandler dh, long flags, unsigned long minFileOffset, unsigned long maxFileOffset, long bytesPerSecond)
  823.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A);
  824.  
  825. /* Standard type for video digitizers */
  826.  
  827. enum {
  828.     videoDigitizerComponentType    = 'vdig',
  829.     vdigInterfaceRev            = 2
  830. };
  831.  
  832. /* Input Format Standards */
  833.  
  834. enum {
  835.     ntscIn                        = 0,                            /* current input format */
  836.     currentIn                    = 0,                            /* ntsc input format */
  837.     palIn                        = 1,                            /* pal input format */
  838.     secamIn                        = 2,                            /* secam input format */
  839.     ntscReallyIn                = 3                                /* ntsc input format */
  840. };
  841.  
  842. /* Input Formats */
  843.  
  844. enum {
  845.     compositeIn                    = 0,                            /* input is composite format */
  846.     sVideoIn                    = 1,                            /* input is sVideo format */
  847.     rgbComponentIn                = 2,                            /* input is rgb component format */
  848.     rgbComponentSyncIn            = 3,                            /* input is rgb component format (sync on green?)*/
  849.     yuvComponentIn                = 4,                            /* input is yuv component format */
  850.     yuvComponentSyncIn            = 5,                            /* input is yuv component format (sync on green?) */
  851.     tvTunerIn                    = 6
  852. };
  853.  
  854. /* Video Digitizer PlayThru States */
  855.  
  856. enum {
  857.     vdPlayThruOff                = 0,
  858.     vdPlayThruOn                = 1
  859. };
  860.  
  861. /* Input Color Space Modes */
  862.  
  863. enum {
  864.     vdDigitizerBW                = 0,                            /* black and white */
  865.     vdDigitizerRGB                = 1                                /* rgb color */
  866. };
  867.  
  868. /* Phase Lock Loop Modes */
  869.  
  870. enum {
  871.     vdBroadcastMode                = 0,                            /* Broadcast / Laser Disk video mode */
  872.     vdVTRMode                    = 1                                /* VCR / Magnetic media mode */
  873. };
  874.  
  875. /* Field Select Options */
  876.  
  877. enum {
  878.     vdUseAnyField                = 0,                            /* Digitizers choice on field use */
  879.     vdUseOddField                = 1,                            /* Use odd field for half size vert and smaller */
  880.     vdUseEvenField                = 2                                /* Use even field for half size vert and smaller */
  881. };
  882.  
  883. /* vdig types */
  884.  
  885. enum {
  886.     vdTypeBasic                    = 0,                            /* basic, no clipping */
  887.     vdTypeAlpha                    = 1,                            /* supports clipping with alpha channel */
  888.     vdTypeMask                    = 2,                            /* supports clipping with mask plane */
  889.     vdTypeKey                    = 3                                /* supports clipping with key color(s) */
  890. };
  891.  
  892. /* Digitizer Input Capability/Current Flags    */
  893.  
  894. enum {
  895.     digiInDoesNTSC                = 1L << 0,                        /* digitizer supports NTSC input format */
  896.     digiInDoesPAL                = 1L << 1,                        /* digitizer supports PAL input format */
  897.     digiInDoesSECAM                = 1L << 2,                        /* digitizer supports SECAM input format */
  898.     digiInDoesGenLock            = 1L << 7,                        /* digitizer does genlock */
  899.     digiInDoesComposite            = 1L << 8,                        /* digitizer supports composite input type */
  900.     digiInDoesSVideo            = 1L << 9,                        /* digitizer supports S-Video input type */
  901.     digiInDoesComponent            = 1L << 10,                        /* digitizer supports component = rgb, input type */
  902.     digiInVTR_Broadcast            = 1L << 11,                        /* digitizer can differentiate between the two */
  903.     digiInDoesColor                = 1L << 12,                        /* digitizer supports color */
  904.     digiInDoesBW                = 1L << 13,                        /* digitizer supports black & white */
  905.                                                                 /* Digitizer Input Current Flags = these are valid only during active operating conditions,    */
  906.     digiInSignalLock            = 1L << 31                        /* digitizer detects input signal is locked, this bit = horiz lock || vertical lock */
  907. };
  908.  
  909. /* Digitizer Output Capability/Current Flags */
  910.  
  911. enum {
  912.     digiOutDoes1                = 1L << 0,                        /* digitizer supports 1 bit pixels */
  913.     digiOutDoes2                = 1L << 1,                        /* digitizer supports 2 bit pixels */
  914.     digiOutDoes4                = 1L << 2,                        /* digitizer supports 4 bit pixels */
  915.     digiOutDoes8                = 1L << 3,                        /* digitizer supports 8 bit pixels */
  916.     digiOutDoes16                = 1L << 4,                        /* digitizer supports 16 bit pixels */
  917.     digiOutDoes32                = 1L << 5,                        /* digitizer supports 32 bit pixels */
  918.     digiOutDoesDither            = 1L << 6,                        /* digitizer dithers in indexed modes */
  919.     digiOutDoesStretch            = 1L << 7,                        /* digitizer can arbitrarily stretch */
  920.     digiOutDoesShrink            = 1L << 8,                        /* digitizer can arbitrarily shrink */
  921.     digiOutDoesMask                = 1L << 9,                        /* digitizer can mask to clipping regions */
  922.     digiOutDoesDouble            = 1L << 11,                        /* digitizer can stretch to exactly double size */
  923.     digiOutDoesQuad                = 1L << 12,                        /* digitizer can stretch exactly quadruple size */
  924.     digiOutDoesQuarter            = 1L << 13,                        /* digitizer can shrink to exactly quarter size */
  925.     digiOutDoesSixteenth        = 1L << 14,                        /* digitizer can shrink to exactly sixteenth size */
  926.     digiOutDoesRotate            = 1L << 15,                        /* digitizer supports rotate transformations */
  927.     digiOutDoesHorizFlip        = 1L << 16,                        /* digitizer supports horizontal flips Sx < 0 */
  928.     digiOutDoesVertFlip            = 1L << 17,                        /* digitizer supports vertical flips Sy < 0 */
  929.     digiOutDoesSkew                = 1L << 18,                        /* digitizer supports skew = shear,twist, */
  930.     digiOutDoesBlend            = 1L << 19,
  931.     digiOutDoesWarp                = 1L << 20,
  932.     digiOutDoesHW_DMA            = 1L << 21,                        /* digitizer not constrained to local device */
  933.     digiOutDoesHWPlayThru        = 1L << 22,                        /* digitizer doesn't need time to play thru */
  934.     digiOutDoesILUT                = 1L << 23,                        /* digitizer does inverse LUT for index modes */
  935.     digiOutDoesKeyColor            = 1L << 24,                        /* digitizer does key color functions too */
  936.     digiOutDoesAsyncGrabs        = 1L << 25,                        /* digitizer supports async grabs */
  937.     digiOutDoesUnreadableScreenBits = 1L << 26,                    /* playthru doesn't generate readable bits on screen*/
  938.     digiOutDoesCompress            = 1L << 27,                        /* supports alternate output data types */
  939.     digiOutDoesCompressOnly        = 1L << 28,                        /* can't provide raw frames anywhere */
  940.     digiOutDoesPlayThruDuringCompress = 1L << 29,                /* digi can do playthru while providing compressed data */
  941.     digiOutDoesCompressPartiallyVisible = 1L << 30                /* digi doesn't need all bits visible on screen to do hardware compress */
  942. };
  943.  
  944. /* Types */
  945. typedef ComponentInstance VideoDigitizerComponent;
  946. typedef ComponentResult VideoDigitizerError;
  947. struct DigitizerInfo {
  948.     short                             vdigType;
  949.     long                             inputCapabilityFlags;
  950.     long                             outputCapabilityFlags;
  951.     long                             inputCurrentFlags;
  952.     long                             outputCurrentFlags;
  953.     short                             slot;                        /* temporary for connection purposes */
  954.     GDHandle                         gdh;                        /* temporary for digitizers that have preferred screen */
  955.     GDHandle                         maskgdh;                    /* temporary for digitizers that have mask planes */
  956.     short                             minDestHeight;                /* Smallest resizable height */
  957.     short                             minDestWidth;                /* Smallest resizable width */
  958.     short                             maxDestHeight;                /* Largest resizable height */
  959.     short                             maxDestWidth;                /* Largest resizable height */
  960.     short                             blendLevels;                /* Number of blend levels supported (2 if 1 bit mask) */
  961.     long                             reserved;                    /* reserved */
  962. };
  963. typedef struct DigitizerInfo DigitizerInfo;
  964.  
  965. struct VdigType {
  966.     long                             digType;
  967.     long                             reserved;
  968. };
  969. typedef struct VdigType VdigType;
  970.  
  971. struct VdigTypeList {
  972.     short                             count;
  973.     VdigType                         list[1];
  974. };
  975. typedef struct VdigTypeList VdigTypeList;
  976.  
  977. struct VdigBufferRec {
  978.     PixMapHandle                     dest;
  979.     Point                             location;
  980.     long                             reserved;
  981. };
  982. typedef struct VdigBufferRec VdigBufferRec;
  983.  
  984. struct VdigBufferRecList {
  985.     short                             count;
  986.     MatrixRecordPtr                 matrix;
  987.     RgnHandle                         mask;
  988.     VdigBufferRec                     list[1];
  989. };
  990. typedef struct VdigBufferRecList VdigBufferRecList;
  991.  
  992. typedef VdigBufferRecList *VdigBufferRecListPtr;
  993. typedef VdigBufferRecListPtr *VdigBufferRecListHandle;
  994. typedef pascal void (*VdigIntProcPtr)(long flags, long refcon);
  995.  
  996. #if GENERATINGCFM
  997. typedef UniversalProcPtr VdigIntUPP;
  998. #else
  999. typedef VdigIntProcPtr VdigIntUPP;
  1000. #endif
  1001. struct VDCompressionList {
  1002.     CodecComponent                     codec;
  1003.     CodecType                         cType;
  1004.     Str63                             typeName;
  1005.     Str63                             name;
  1006.     long                             formatFlags;
  1007.     long                             compressFlags;
  1008.     long                             reserved;
  1009. };
  1010. typedef struct VDCompressionList VDCompressionList;
  1011.  
  1012. typedef VDCompressionList *VDCompressionListPtr;
  1013. typedef VDCompressionListPtr *VDCompressionListHandle;
  1014.  
  1015. enum {
  1016.     dmaDepth1                    = 1,
  1017.     dmaDepth2                    = 2,
  1018.     dmaDepth4                    = 4,
  1019.     dmaDepth8                    = 8,
  1020.     dmaDepth16                    = 16,
  1021.     dmaDepth32                    = 32,
  1022.     dmaDepth2Gray                = 64,
  1023.     dmaDepth4Gray                = 128,
  1024.     dmaDepth8Gray                = 256
  1025. };
  1026.  
  1027.  
  1028. enum {
  1029.     kVDIGControlledFrameRate    = -1
  1030. };
  1031.  
  1032. extern pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *maxSrcRect)
  1033.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0001, 0x7000, 0xA82A);
  1034.  
  1035. extern pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *activeSrcRect)
  1036.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  1037.  
  1038. extern pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  1039.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  1040.  
  1041. extern pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  1042.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
  1043.  
  1044. extern pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci, short inputStd, Rect *vBlankRect)
  1045.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0005, 0x7000, 0xA82A);
  1046.  
  1047. extern pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci, PixMapHandle maskPixMap)
  1048.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  1049.  
  1050. extern pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle *dest, Rect *destRect, MatrixRecord *m, RgnHandle *mask)
  1051.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0008, 0x7000, 0xA82A);
  1052.  
  1053. extern pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci, CTabHandle colorTableHandle)
  1054.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A);
  1055.  
  1056. extern pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci, Fixed channel1, Fixed channel2, Fixed channel3)
  1057.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000A, 0x7000, 0xA82A);
  1058.  
  1059. extern pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci, Fixed *channel1, Fixed *channel2, Fixed *channel3)
  1060.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  1061.  
  1062. extern pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  1063.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  1064.  
  1065. extern pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  1066.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  1067.  
  1068. extern pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  1069.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A);
  1070.  
  1071. extern pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci, unsigned short *hue)
  1072.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  1073.  
  1074. extern pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  1075.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  1076.  
  1077. extern pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  1078.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  1079.  
  1080. extern pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  1081.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1082.  
  1083. extern pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci, unsigned short *hue)
  1084.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  1085.  
  1086. extern pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  1087.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1088.  
  1089. extern pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  1090.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1091.  
  1092. extern pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci)
  1093.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  1094.  
  1095. extern pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci, PixMapHandle *pm, Rect *r)
  1096.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
  1097.  
  1098. extern pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci, DigitizerInfo *info)
  1099.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  1100.  
  1101. extern pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci, long *inputCurrentFlag, long *outputCurrentFlag)
  1102.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x001A, 0x7000, 0xA82A);
  1103.  
  1104. extern pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci, long index)
  1105.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1106.  
  1107. extern pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci, long *index)
  1108.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  1109.  
  1110. extern pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci, long *index)
  1111.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  1112.  
  1113. extern pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci, long index)
  1114.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1115.  
  1116. extern pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  1117.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x001F, 0x7000, 0xA82A);
  1118.  
  1119. extern pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  1120.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  1121.  
  1122. extern pascal VideoDigitizerError VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci, long flags, VdigIntUPP userInterruptProc, long refcon)
  1123.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0021, 0x7000, 0xA82A);
  1124.  
  1125. extern pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci, short colorSpaceMode)
  1126.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0022, 0x7000, 0xA82A);
  1127.  
  1128. extern pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci, short *colorSpaceMode)
  1129.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A);
  1130.  
  1131. extern pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci, short clipEnable)
  1132.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0024, 0x7000, 0xA82A);
  1133.  
  1134. extern pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci, short *clipEnable)
  1135.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  1136.  
  1137. extern pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  1138.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
  1139.  
  1140. extern pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  1141.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1142.  
  1143. extern pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci, CTabHandle *colorTableHandle)
  1144.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1145.  
  1146. extern pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci, short pllType)
  1147.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0029, 0x7000, 0xA82A);
  1148.  
  1149. extern pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci, short *pllType)
  1150.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  1151.  
  1152. extern pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci, unsigned short blendLevel, long *mask, long *value)
  1153.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x002B, 0x7000, 0xA82A);
  1154.  
  1155. extern pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci, unsigned short *blendLevel)
  1156.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
  1157.  
  1158. extern pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle dest, Rect *destRect, MatrixRecord *m, RgnHandle mask)
  1159.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x002D, 0x7000, 0xA82A);
  1160.  
  1161. extern pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci, short state)
  1162.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x002E, 0x7000, 0xA82A);
  1163.  
  1164. extern pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci, short fieldFlag)
  1165.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x002F, 0x7000, 0xA82A);
  1166.  
  1167. extern pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci, short *fieldFlag)
  1168.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
  1169.  
  1170. extern pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci, Rect *digitizerRect, PixMap **dest, Rect *destRect, MatrixRecord *m)
  1171.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0032, 0x7000, 0xA82A);
  1172.  
  1173. extern pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  1174.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  1175.  
  1176. extern pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  1177.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  1178.  
  1179. extern pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr inputGammaPtr)
  1180.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A);
  1181.  
  1182. extern pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr *inputGammaPtr)
  1183.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0036, 0x7000, 0xA82A);
  1184.  
  1185. extern pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  1186.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A);
  1187.  
  1188. extern pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  1189.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A);
  1190.  
  1191. extern pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  1192.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0039, 0x7000, 0xA82A);
  1193.  
  1194. extern pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  1195.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A);
  1196.  
  1197. extern pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci, unsigned short *blackLevel, unsigned short *whiteLevel, unsigned short *brightness, unsigned short *hue, unsigned short *saturation, unsigned short *contrast, unsigned short *sharpness)
  1198.  FIVEWORDINLINE(0x2F3C, 0x001C, 0x003B, 0x7000, 0xA82A);
  1199.  
  1200. extern pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci, short *inputs)
  1201.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A);
  1202.  
  1203. extern pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci, short input, short *format)
  1204.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x003D, 0x7000, 0xA82A);
  1205.  
  1206. extern pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci, short input)
  1207.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x003E, 0x7000, 0xA82A);
  1208.  
  1209. extern pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci, short *input)
  1210.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x003F, 0x7000, 0xA82A);
  1211.  
  1212. extern pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci, short inputStandard)
  1213.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0040, 0x7000, 0xA82A);
  1214.  
  1215. extern pascal VideoDigitizerError VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList)
  1216.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0041, 0x7000, 0xA82A);
  1217.  
  1218. extern pascal VideoDigitizerError VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer)
  1219.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0042, 0x7000, 0xA82A);
  1220.  
  1221. extern pascal VideoDigitizerError VDDone(VideoDigitizerComponent ci, short buffer)
  1222.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0043, 0x7000, 0xA82A);
  1223.  
  1224. extern pascal VideoDigitizerError VDSetCompression(VideoDigitizerComponent ci, OSType compressType, short depth, Rect *bounds, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  1225.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0044, 0x7000, 0xA82A);
  1226.  
  1227. extern pascal VideoDigitizerError VDCompressOneFrameAsync(VideoDigitizerComponent ci)
  1228.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0045, 0x7000, 0xA82A);
  1229.  
  1230. extern pascal VideoDigitizerError VDCompressDone(VideoDigitizerComponent ci, Boolean *done, Ptr *theData, long *dataSize, UInt8 *similarity, TimeRecord *t)
  1231.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0046, 0x7000, 0xA82A);
  1232.  
  1233. extern pascal VideoDigitizerError VDReleaseCompressBuffer(VideoDigitizerComponent ci, Ptr bufferAddr)
  1234.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0047, 0x7000, 0xA82A);
  1235.  
  1236. extern pascal VideoDigitizerError VDGetImageDescription(VideoDigitizerComponent ci, ImageDescriptionHandle desc)
  1237.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0048, 0x7000, 0xA82A);
  1238.  
  1239. extern pascal VideoDigitizerError VDResetCompressSequence(VideoDigitizerComponent ci)
  1240.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0049, 0x7000, 0xA82A);
  1241.  
  1242. extern pascal VideoDigitizerError VDSetCompressionOnOff(VideoDigitizerComponent ci, Boolean state)
  1243.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x004A, 0x7000, 0xA82A);
  1244.  
  1245. extern pascal VideoDigitizerError VDGetCompressionTypes(VideoDigitizerComponent ci, VDCompressionListHandle h)
  1246.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004B, 0x7000, 0xA82A);
  1247.  
  1248. extern pascal VideoDigitizerError VDSetTimeBase(VideoDigitizerComponent ci, TimeBase t)
  1249.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004C, 0x7000, 0xA82A);
  1250.  
  1251. extern pascal VideoDigitizerError VDSetFrameRate(VideoDigitizerComponent ci, Fixed framesPerSecond)
  1252.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004D, 0x7000, 0xA82A);
  1253.  
  1254. extern pascal VideoDigitizerError VDGetDataRate(VideoDigitizerComponent ci, long *milliSecPerFrame, Fixed *framesPerSecond, long *bytesPerSecond)
  1255.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x004E, 0x7000, 0xA82A);
  1256.  
  1257. extern pascal VideoDigitizerError VDGetSoundInputDriver(VideoDigitizerComponent ci, Str255 soundDriverName)
  1258.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004F, 0x7000, 0xA82A);
  1259.  
  1260. extern pascal VideoDigitizerError VDGetDMADepths(VideoDigitizerComponent ci, long *depthArray, long *preferredDepth)
  1261.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0050, 0x7000, 0xA82A);
  1262.  
  1263. extern pascal VideoDigitizerError VDGetPreferredTimeScale(VideoDigitizerComponent ci, TimeScale *preferred)
  1264.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0051, 0x7000, 0xA82A);
  1265.  
  1266. extern pascal VideoDigitizerError VDReleaseAsyncBuffers(VideoDigitizerComponent ci)
  1267.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0052, 0x7000, 0xA82A);
  1268.  
  1269. /* 83 is reserved for compatibility reasons */
  1270. extern pascal VideoDigitizerError VDSetDataRate(VideoDigitizerComponent ci, long bytesPerSecond)
  1271.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0054, 0x7000, 0xA82A);
  1272.  
  1273. extern pascal VideoDigitizerError VDGetTimeCode(VideoDigitizerComponent ci, TimeRecord *atTime, void *timeCodeFormat, void *timeCodeTime)
  1274.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0055, 0x7000, 0xA82A);
  1275.  
  1276. extern pascal VideoDigitizerError VDUseSafeBuffers(VideoDigitizerComponent ci, Boolean useSafeBuffers)
  1277.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0056, 0x7000, 0xA82A);
  1278.  
  1279. extern pascal VideoDigitizerError VDGetSoundInputSource(VideoDigitizerComponent ci, long videoInput, long *soundInput)
  1280.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0057, 0x7000, 0xA82A);
  1281.  
  1282. extern pascal VideoDigitizerError VDGetCompressionTime(VideoDigitizerComponent ci, OSType compressionType, short depth, Rect *srcRect, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *compressTime)
  1283.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0058, 0x7000, 0xA82A);
  1284.  
  1285. extern pascal VideoDigitizerError VDSetPreferredPacketSize(VideoDigitizerComponent ci, long preferredPacketSizeInBytes)
  1286.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0059, 0x7000, 0xA82A);
  1287.  
  1288. /*
  1289.     General Sequence Grab stuff
  1290. */
  1291. typedef ComponentInstance SeqGrabComponent;
  1292. typedef ComponentInstance SGChannel;
  1293.  
  1294. enum {
  1295.     SeqGrabComponentType        = 'barg',
  1296.     SeqGrabChannelType            = 'sgch',
  1297.     SeqGrabPanelType            = 'sgpn',
  1298.     SeqGrabCompressionPanelType    = 'cmpr',
  1299.     SeqGrabSourcePanelType        = 'sour'
  1300. };
  1301.  
  1302.  
  1303. enum {
  1304.     seqGrabToDisk                = 1,
  1305.     seqGrabToMemory                = 2,
  1306.     seqGrabDontUseTempMemory    = 4,
  1307.     seqGrabAppendToFile            = 8,
  1308.     seqGrabDontAddMovieResource    = 16,
  1309.     seqGrabDontMakeMovie        = 32,
  1310.     seqGrabPreExtendFile        = 64,
  1311.     seqGrabDataProcIsInterruptSafe = 128,
  1312.     seqGrabDataProcDoesOverlappingReads = 256
  1313. };
  1314.  
  1315. typedef unsigned long SeqGrabDataOutputEnum;
  1316.  
  1317. enum {
  1318.     seqGrabRecord                = 1,
  1319.     seqGrabPreview                = 2,
  1320.     seqGrabPlayDuringRecord        = 4
  1321. };
  1322.  
  1323. typedef unsigned long SeqGrabUsageEnum;
  1324.  
  1325. enum {
  1326.     seqGrabHasBounds            = 1,
  1327.     seqGrabHasVolume            = 2,
  1328.     seqGrabHasDiscreteSamples    = 4
  1329. };
  1330.  
  1331. typedef unsigned long SeqGrabChannelInfoEnum;
  1332. struct SeqGrabFrameInfo {
  1333.     long                             frameOffset;
  1334.     long                             frameTime;
  1335.     long                             frameSize;
  1336.     SGChannel                         frameChannel;
  1337.     long                             frameRefCon;
  1338. };
  1339. typedef struct SeqGrabFrameInfo SeqGrabFrameInfo;
  1340.  
  1341. typedef SeqGrabFrameInfo *SeqGrabFrameInfoPtr;
  1342.  
  1343. enum {
  1344.     grabPictOffScreen            = 1,
  1345.     grabPictIgnoreClip            = 2,
  1346.     grabPictCurrentImage        = 4
  1347. };
  1348.  
  1349.  
  1350. enum {
  1351.     sgFlagControlledGrab        = (1 << 0)
  1352. };
  1353.  
  1354. typedef pascal OSErr (*SGDataProcPtr)(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon);
  1355.  
  1356. #if GENERATINGCFM
  1357. typedef UniversalProcPtr SGDataUPP;
  1358. #else
  1359. typedef SGDataProcPtr SGDataUPP;
  1360. #endif
  1361. struct SGDeviceName {
  1362.     Str63                             name;
  1363.     Handle                             icon;
  1364.     long                             flags;
  1365.     long                             refCon;
  1366.     long                             reserved;                    /* zero*/
  1367. };
  1368. typedef struct SGDeviceName SGDeviceName;
  1369.  
  1370.  
  1371. enum {
  1372.     sgDeviceNameFlagDeviceUnavailable = (1 << 0)
  1373. };
  1374.  
  1375. struct SGDeviceListRecord {
  1376.     short                             count;
  1377.     short                             selectedIndex;
  1378.     long                             reserved;                    /* zero*/
  1379.     SGDeviceName                     entry[1];
  1380. };
  1381. typedef struct SGDeviceListRecord SGDeviceListRecord;
  1382.  
  1383. typedef SGDeviceListRecord *SGDeviceListPtr;
  1384. typedef SGDeviceListPtr *SGDeviceList;
  1385.  
  1386. enum {
  1387.     sgDeviceListWithIcons        = (1 << 0),
  1388.     sgDeviceListDontCheckAvailability = (1 << 1)
  1389. };
  1390.  
  1391.  
  1392. enum {
  1393.     seqGrabWriteAppend            = 0,
  1394.     seqGrabWriteReserve            = 1,
  1395.     seqGrabWriteFill            = 2
  1396. };
  1397.  
  1398.  
  1399. enum {
  1400.     seqGrabUnpause                = 0,
  1401.     seqGrabPause                = 1,
  1402.     seqGrabPauseForMenu            = 3
  1403. };
  1404.  
  1405.  
  1406. enum {
  1407.     channelFlagDontOpenResFile    = 2,
  1408.     channelFlagHasDependency    = 4
  1409. };
  1410.  
  1411. typedef pascal Boolean (*SGModalFilterProcPtr)(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refCon);
  1412.  
  1413. #if GENERATINGCFM
  1414. typedef UniversalProcPtr SGModalFilterUPP;
  1415. #else
  1416. typedef SGModalFilterProcPtr SGModalFilterUPP;
  1417. #endif
  1418.  
  1419. enum {
  1420.     sgPanelFlagForPanel            = 1
  1421. };
  1422.  
  1423.  
  1424. enum {
  1425.     seqGrabSettingsPreviewOnly    = 1
  1426. };
  1427.  
  1428. struct SGOutputRecord {
  1429.     long                             data[1];
  1430. };
  1431. typedef struct SGOutputRecord SGOutputRecord;
  1432.  
  1433. typedef SGOutputRecord *SGOutput;
  1434.  
  1435. enum {
  1436.     channelPlayNormal            = 0,
  1437.     channelPlayFast                = 1,
  1438.     channelPlayHighQuality        = 2,
  1439.     channelPlayAllData            = 4
  1440. };
  1441.  
  1442. extern pascal ComponentResult SGInitialize(SeqGrabComponent s)
  1443.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0001, 0x7000, 0xA82A);
  1444.  
  1445. extern pascal ComponentResult SGSetDataOutput(SeqGrabComponent s, const FSSpec *movieFile, long whereFlags)
  1446.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  1447.  
  1448. extern pascal ComponentResult SGGetDataOutput(SeqGrabComponent s, FSSpec *movieFile, long *whereFlags)
  1449.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  1450.  
  1451. extern pascal ComponentResult SGSetGWorld(SeqGrabComponent s, CGrafPtr gp, GDHandle gd)
  1452.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  1453.  
  1454. extern pascal ComponentResult SGGetGWorld(SeqGrabComponent s, CGrafPtr *gp, GDHandle *gd)
  1455.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  1456.  
  1457. extern pascal ComponentResult SGNewChannel(SeqGrabComponent s, OSType channelType, SGChannel *ref)
  1458.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  1459.  
  1460. extern pascal ComponentResult SGDisposeChannel(SeqGrabComponent s, SGChannel c)
  1461.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  1462.  
  1463. extern pascal ComponentResult SGStartPreview(SeqGrabComponent s)
  1464.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  1465.  
  1466. extern pascal ComponentResult SGStartRecord(SeqGrabComponent s)
  1467.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  1468.  
  1469. extern pascal ComponentResult SGIdle(SeqGrabComponent s)
  1470.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  1471.  
  1472. extern pascal ComponentResult SGStop(SeqGrabComponent s)
  1473.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0013, 0x7000, 0xA82A);
  1474.  
  1475. extern pascal ComponentResult SGPause(SeqGrabComponent s, Byte pause)
  1476.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0014, 0x7000, 0xA82A);
  1477.  
  1478. extern pascal ComponentResult SGPrepare(SeqGrabComponent s, Boolean prepareForPreview, Boolean prepareForRecord)
  1479.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1480.  
  1481. extern pascal ComponentResult SGRelease(SeqGrabComponent s)
  1482.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  1483.  
  1484. extern pascal Movie SGGetMovie(SeqGrabComponent s)
  1485.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0017, 0x7000, 0xA82A);
  1486.  
  1487. extern pascal ComponentResult SGSetMaximumRecordTime(SeqGrabComponent s, unsigned long ticks)
  1488.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  1489.  
  1490. extern pascal ComponentResult SGGetMaximumRecordTime(SeqGrabComponent s, unsigned long *ticks)
  1491.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  1492.  
  1493. extern pascal ComponentResult SGGetStorageSpaceRemaining(SeqGrabComponent s, unsigned long *bytes)
  1494.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  1495.  
  1496. extern pascal ComponentResult SGGetTimeRemaining(SeqGrabComponent s, long *ticksLeft)
  1497.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1498.  
  1499. extern pascal ComponentResult SGGrabPict(SeqGrabComponent s, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags)
  1500.  FIVEWORDINLINE(0x2F3C, 0x000E, 0x001C, 0x7000, 0xA82A);
  1501.  
  1502. extern pascal ComponentResult SGGetLastMovieResID(SeqGrabComponent s, short *resID)
  1503.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  1504.  
  1505. extern pascal ComponentResult SGSetFlags(SeqGrabComponent s, long sgFlags)
  1506.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1507.  
  1508. extern pascal ComponentResult SGGetFlags(SeqGrabComponent s, long *sgFlags)
  1509.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  1510.  
  1511. extern pascal ComponentResult SGSetDataProc(SeqGrabComponent s, SGDataUPP proc, long refCon)
  1512.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  1513.  
  1514. extern pascal ComponentResult SGNewChannelFromComponent(SeqGrabComponent s, SGChannel *newChannel, Component sgChannelComponent)
  1515.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  1516.  
  1517. extern pascal ComponentResult SGDisposeDeviceList(SeqGrabComponent s, SGDeviceList list)
  1518.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A);
  1519.  
  1520. extern pascal ComponentResult SGAppendDeviceListToMenu(SeqGrabComponent s, SGDeviceList list, MenuHandle mh)
  1521.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0023, 0x7000, 0xA82A);
  1522.  
  1523. extern pascal ComponentResult SGSetSettings(SeqGrabComponent s, UserData ud, long flags)
  1524.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  1525.  
  1526. extern pascal ComponentResult SGGetSettings(SeqGrabComponent s, UserData *ud, long flags)
  1527.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0025, 0x7000, 0xA82A);
  1528.  
  1529. extern pascal ComponentResult SGGetIndChannel(SeqGrabComponent s, short index, SGChannel *ref, OSType *chanType)
  1530.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0026, 0x7000, 0xA82A);
  1531.  
  1532. extern pascal ComponentResult SGUpdate(SeqGrabComponent s, RgnHandle updateRgn)
  1533.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1534.  
  1535. extern pascal ComponentResult SGGetPause(SeqGrabComponent s, Byte *paused)
  1536.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1537.  
  1538. typedef const Component *ConstComponentListPtr;
  1539. extern pascal ComponentResult SGSettingsDialog(SeqGrabComponent s, SGChannel c, short numPanels, ConstComponentListPtr panelList, long flags, SGModalFilterUPP proc, long procRefNum)
  1540.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0029, 0x7000, 0xA82A);
  1541.  
  1542. extern pascal ComponentResult SGGetAlignmentProc(SeqGrabComponent s, ICMAlignmentProcRecordPtr alignmentProc)
  1543.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  1544.  
  1545. extern pascal ComponentResult SGSetChannelSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  1546.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002B, 0x7000, 0xA82A);
  1547.  
  1548. extern pascal ComponentResult SGGetChannelSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  1549.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002C, 0x7000, 0xA82A);
  1550.  
  1551. extern pascal ComponentResult SGGetMode(SeqGrabComponent s, Boolean *previewMode, Boolean *recordMode)
  1552.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  1553.  
  1554. extern pascal ComponentResult SGSetDataRef(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags)
  1555.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002E, 0x7000, 0xA82A);
  1556.  
  1557. extern pascal ComponentResult SGGetDataRef(SeqGrabComponent s, Handle *dataRef, OSType *dataRefType, long *whereFlags)
  1558.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002F, 0x7000, 0xA82A);
  1559.  
  1560. extern pascal ComponentResult SGNewOutput(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags, SGOutput *sgOut)
  1561.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0030, 0x7000, 0xA82A);
  1562.  
  1563. extern pascal ComponentResult SGDisposeOutput(SeqGrabComponent s, SGOutput sgOut)
  1564.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0031, 0x7000, 0xA82A);
  1565.  
  1566. extern pascal ComponentResult SGSetOutputFlags(SeqGrabComponent s, SGOutput sgOut, long whereFlags)
  1567.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
  1568.  
  1569. extern pascal ComponentResult SGSetChannelOutput(SeqGrabComponent s, SGChannel c, SGOutput sgOut)
  1570.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  1571.  
  1572. extern pascal ComponentResult SGGetDataOutputStorageSpaceRemaining(SeqGrabComponent s, SGOutput sgOut, unsigned long *space)
  1573.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  1574.  
  1575. extern pascal ComponentResult SGHandleUpdateEvent(SeqGrabComponent s, EventRecord *event, Boolean *handled)
  1576.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0035, 0x7000, 0xA82A);
  1577.  
  1578. /*
  1579.     calls from Channel to seqGrab
  1580. */
  1581. extern pascal ComponentResult SGWriteMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset)
  1582.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0100, 0x7000, 0xA82A);
  1583.  
  1584. extern pascal ComponentResult SGAddFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo)
  1585.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1586.  
  1587. extern pascal ComponentResult SGGetNextFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo, TimeValue *frameDuration, long *frameNumber)
  1588.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A);
  1589.  
  1590. extern pascal ComponentResult SGGetTimeBase(SeqGrabComponent s, TimeBase *tb)
  1591.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1592.  
  1593. extern pascal ComponentResult SGSortDeviceList(SeqGrabComponent s, SGDeviceList list)
  1594.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  1595.  
  1596. extern pascal ComponentResult SGAddMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType)
  1597.  FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  1598.  
  1599. extern pascal ComponentResult SGChangedSource(SeqGrabComponent s, SGChannel c)
  1600.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0106, 0x7000, 0xA82A);
  1601.  
  1602. /*** Sequence Grab CHANNEL Component Stuff ***/
  1603. extern pascal ComponentResult SGSetChannelUsage(SGChannel c, long usage)
  1604.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0080, 0x7000, 0xA82A);
  1605.  
  1606. extern pascal ComponentResult SGGetChannelUsage(SGChannel c, long *usage)
  1607.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0081, 0x7000, 0xA82A);
  1608.  
  1609. extern pascal ComponentResult SGSetChannelBounds(SGChannel c, const Rect *bounds)
  1610.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0082, 0x7000, 0xA82A);
  1611.  
  1612. extern pascal ComponentResult SGGetChannelBounds(SGChannel c, Rect *bounds)
  1613.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0083, 0x7000, 0xA82A);
  1614.  
  1615. extern pascal ComponentResult SGSetChannelVolume(SGChannel c, short volume)
  1616.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0084, 0x7000, 0xA82A);
  1617.  
  1618. extern pascal ComponentResult SGGetChannelVolume(SGChannel c, short *volume)
  1619.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0085, 0x7000, 0xA82A);
  1620.  
  1621. extern pascal ComponentResult SGGetChannelInfo(SGChannel c, long *channelInfo)
  1622.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0086, 0x7000, 0xA82A);
  1623.  
  1624. extern pascal ComponentResult SGSetChannelPlayFlags(SGChannel c, long playFlags)
  1625.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  1626.  
  1627. extern pascal ComponentResult SGGetChannelPlayFlags(SGChannel c, long *playFlags)
  1628.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0088, 0x7000, 0xA82A);
  1629.  
  1630. extern pascal ComponentResult SGSetChannelMaxFrames(SGChannel c, long frameCount)
  1631.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0089, 0x7000, 0xA82A);
  1632.  
  1633. extern pascal ComponentResult SGGetChannelMaxFrames(SGChannel c, long *frameCount)
  1634.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008A, 0x7000, 0xA82A);
  1635.  
  1636. extern pascal ComponentResult SGSetChannelRefCon(SGChannel c, long refCon)
  1637.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008B, 0x7000, 0xA82A);
  1638.  
  1639. extern pascal ComponentResult SGSetChannelClip(SGChannel c, RgnHandle theClip)
  1640.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008C, 0x7000, 0xA82A);
  1641.  
  1642. extern pascal ComponentResult SGGetChannelClip(SGChannel c, RgnHandle *theClip)
  1643.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008D, 0x7000, 0xA82A);
  1644.  
  1645. extern pascal ComponentResult SGGetChannelSampleDescription(SGChannel c, Handle sampleDesc)
  1646.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008E, 0x7000, 0xA82A);
  1647.  
  1648. extern pascal ComponentResult SGGetChannelDeviceList(SGChannel c, long selectionFlags, SGDeviceList *list)
  1649.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x008F, 0x7000, 0xA82A);
  1650.  
  1651. extern pascal ComponentResult SGSetChannelDevice(SGChannel c, StringPtr name)
  1652.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0090, 0x7000, 0xA82A);
  1653.  
  1654. extern pascal ComponentResult SGSetChannelMatrix(SGChannel c, const MatrixRecord *m)
  1655.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0091, 0x7000, 0xA82A);
  1656.  
  1657. extern pascal ComponentResult SGGetChannelMatrix(SGChannel c, MatrixRecord *m)
  1658.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0092, 0x7000, 0xA82A);
  1659.  
  1660. extern pascal ComponentResult SGGetChannelTimeScale(SGChannel c, TimeScale *scale)
  1661.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0093, 0x7000, 0xA82A);
  1662.  
  1663. extern pascal ComponentResult SGChannelPutPicture(SGChannel c)
  1664.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0094, 0x7000, 0xA82A);
  1665.  
  1666. extern pascal ComponentResult SGChannelSetRequestedDataRate(SGChannel c, long bytesPerSecond)
  1667.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0095, 0x7000, 0xA82A);
  1668.  
  1669. extern pascal ComponentResult SGChannelGetRequestedDataRate(SGChannel c, long *bytesPerSecond)
  1670.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0096, 0x7000, 0xA82A);
  1671.  
  1672. extern pascal ComponentResult SGChannelSetDataSourceName(SGChannel c, ConstStr255Param name, ScriptCode scriptTag)
  1673.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0097, 0x7000, 0xA82A);
  1674.  
  1675. extern pascal ComponentResult SGChannelGetDataSourceName(SGChannel c, Str255 name, ScriptCode *scriptTag)
  1676.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0098, 0x7000, 0xA82A);
  1677.  
  1678. /*
  1679.     calls from seqGrab to Channel
  1680. */
  1681. extern pascal ComponentResult SGInitChannel(SGChannel c, SeqGrabComponent owner)
  1682.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0180, 0x7000, 0xA82A);
  1683.  
  1684. extern pascal ComponentResult SGWriteSamples(SGChannel c, Movie m, AliasHandle theFile)
  1685.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0181, 0x7000, 0xA82A);
  1686.  
  1687. extern pascal ComponentResult SGGetDataRate(SGChannel c, long *bytesPerSecond)
  1688.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0182, 0x7000, 0xA82A);
  1689.  
  1690. extern pascal ComponentResult SGAlignChannelRect(SGChannel c, Rect *r)
  1691.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0183, 0x7000, 0xA82A);
  1692.  
  1693. /*
  1694.     Dorky dialog panel calls
  1695. */
  1696. extern pascal ComponentResult SGPanelGetDitl(SeqGrabComponent s, Handle *ditl)
  1697.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0200, 0x7000, 0xA82A);
  1698.  
  1699. extern pascal ComponentResult SGPanelGetTitle(SeqGrabComponent s, Str255 title)
  1700.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0201, 0x7000, 0xA82A);
  1701.  
  1702. extern pascal ComponentResult SGPanelCanRun(SeqGrabComponent s, SGChannel c)
  1703.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0202, 0x7000, 0xA82A);
  1704.  
  1705. extern pascal ComponentResult SGPanelInstall(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1706.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0203, 0x7000, 0xA82A);
  1707.  
  1708. extern pascal ComponentResult SGPanelEvent(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, EventRecord *theEvent, short *itemHit, Boolean *handled)
  1709.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0204, 0x7000, 0xA82A);
  1710.  
  1711. extern pascal ComponentResult SGPanelItem(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, short itemNum)
  1712.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0205, 0x7000, 0xA82A);
  1713.  
  1714. extern pascal ComponentResult SGPanelRemove(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1715.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0206, 0x7000, 0xA82A);
  1716.  
  1717. extern pascal ComponentResult SGPanelSetGrabber(SeqGrabComponent s, SeqGrabComponent sg)
  1718.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0207, 0x7000, 0xA82A);
  1719.  
  1720. extern pascal ComponentResult SGPanelSetResFile(SeqGrabComponent s, short resRef)
  1721.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0208, 0x7000, 0xA82A);
  1722.  
  1723. extern pascal ComponentResult SGPanelGetSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  1724.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0209, 0x7000, 0xA82A);
  1725.  
  1726. extern pascal ComponentResult SGPanelSetSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  1727.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x020A, 0x7000, 0xA82A);
  1728.  
  1729. extern pascal ComponentResult SGPanelValidateInput(SeqGrabComponent s, Boolean *ok)
  1730.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x020B, 0x7000, 0xA82A);
  1731.  
  1732. extern pascal ComponentResult SGPanelSetEventFilter(SeqGrabComponent s, SGModalFilterUPP proc, long refCon)
  1733.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x020C, 0x7000, 0xA82A);
  1734.  
  1735. /*** Sequence Grab VIDEO CHANNEL Component Stuff ***/
  1736. /*
  1737.     Video stuff
  1738. */
  1739. struct SGCompressInfo {
  1740.     Ptr                             buffer;
  1741.     unsigned long                     bufferSize;
  1742.     UInt8                             similarity;
  1743.     UInt8                             reserved;
  1744. };
  1745. typedef struct SGCompressInfo SGCompressInfo;
  1746.  
  1747. typedef pascal ComponentResult (*SGGrabBottleProcPtr)(SGChannel c, short bufferNum, long refCon);
  1748. typedef pascal ComponentResult (*SGGrabCompleteBottleProcPtr)(SGChannel c, short bufferNum, Boolean *done, long refCon);
  1749. typedef pascal ComponentResult (*SGDisplayBottleProcPtr)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  1750. typedef pascal ComponentResult (*SGCompressBottleProcPtr)(SGChannel c, short bufferNum, long refCon);
  1751. typedef pascal ComponentResult (*SGCompressCompleteBottleProcPtr)(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci, long refCon);
  1752. typedef pascal ComponentResult (*SGAddFrameBottleProcPtr)(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci, long refCon);
  1753. typedef pascal ComponentResult (*SGTransferFrameBottleProcPtr)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  1754. typedef pascal ComponentResult (*SGGrabCompressCompleteBottleProcPtr)(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *t, long refCon);
  1755. typedef pascal ComponentResult (*SGDisplayCompressBottleProcPtr)(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  1756.  
  1757. #if GENERATINGCFM
  1758. typedef UniversalProcPtr SGGrabBottleUPP;
  1759. typedef UniversalProcPtr SGGrabCompleteBottleUPP;
  1760. typedef UniversalProcPtr SGDisplayBottleUPP;
  1761. typedef UniversalProcPtr SGCompressBottleUPP;
  1762. typedef UniversalProcPtr SGCompressCompleteBottleUPP;
  1763. typedef UniversalProcPtr SGAddFrameBottleUPP;
  1764. typedef UniversalProcPtr SGTransferFrameBottleUPP;
  1765. typedef UniversalProcPtr SGGrabCompressCompleteBottleUPP;
  1766. typedef UniversalProcPtr SGDisplayCompressBottleUPP;
  1767. #else
  1768. typedef SGGrabBottleProcPtr SGGrabBottleUPP;
  1769. typedef SGGrabCompleteBottleProcPtr SGGrabCompleteBottleUPP;
  1770. typedef SGDisplayBottleProcPtr SGDisplayBottleUPP;
  1771. typedef SGCompressBottleProcPtr SGCompressBottleUPP;
  1772. typedef SGCompressCompleteBottleProcPtr SGCompressCompleteBottleUPP;
  1773. typedef SGAddFrameBottleProcPtr SGAddFrameBottleUPP;
  1774. typedef SGTransferFrameBottleProcPtr SGTransferFrameBottleUPP;
  1775. typedef SGGrabCompressCompleteBottleProcPtr SGGrabCompressCompleteBottleUPP;
  1776. typedef SGDisplayCompressBottleProcPtr SGDisplayCompressBottleUPP;
  1777. #endif
  1778. struct VideoBottles {
  1779.     short                             procCount;
  1780.     SGGrabBottleUPP                 grabProc;
  1781.     SGGrabCompleteBottleUPP         grabCompleteProc;
  1782.     SGDisplayBottleUPP                 displayProc;
  1783.     SGCompressBottleUPP             compressProc;
  1784.     SGCompressCompleteBottleUPP     compressCompleteProc;
  1785.     SGAddFrameBottleUPP             addFrameProc;
  1786.     SGTransferFrameBottleUPP         transferFrameProc;
  1787.     SGGrabCompressCompleteBottleUPP  grabCompressCompleteProc;
  1788.     SGDisplayCompressBottleUPP         displayCompressProc;
  1789. };
  1790. typedef struct VideoBottles VideoBottles;
  1791.  
  1792. extern pascal ComponentResult SGGetSrcVideoBounds(SGChannel c, Rect *r)
  1793.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1794.  
  1795. extern pascal ComponentResult SGSetVideoRect(SGChannel c, const Rect *r)
  1796.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1797.  
  1798. extern pascal ComponentResult SGGetVideoRect(SGChannel c, Rect *r)
  1799.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  1800.  
  1801. extern pascal ComponentResult SGGetVideoCompressorType(SGChannel c, OSType *compressorType)
  1802.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1803.  
  1804. extern pascal ComponentResult SGSetVideoCompressorType(SGChannel c, OSType compressorType)
  1805.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  1806.  
  1807. extern pascal ComponentResult SGSetVideoCompressor(SGChannel c, short depth, CompressorComponent compressor, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  1808.  FIVEWORDINLINE(0x2F3C, 0x0012, 0x0105, 0x7000, 0xA82A);
  1809.  
  1810. extern pascal ComponentResult SGGetVideoCompressor(SGChannel c, short *depth, CompressorComponent *compressor, CodecQ *spatialQuality, CodecQ *temporalQuality, long *keyFrameRate)
  1811.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0106, 0x7000, 0xA82A);
  1812.  
  1813. extern pascal ComponentInstance SGGetVideoDigitizerComponent(SGChannel c)
  1814.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0107, 0x7000, 0xA82A);
  1815.  
  1816. extern pascal ComponentResult SGSetVideoDigitizerComponent(SGChannel c, ComponentInstance vdig)
  1817.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  1818.  
  1819. extern pascal ComponentResult SGVideoDigitizerChanged(SGChannel c)
  1820.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0109, 0x7000, 0xA82A);
  1821.  
  1822. extern pascal ComponentResult SGSetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  1823.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  1824.  
  1825. extern pascal ComponentResult SGGetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  1826.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  1827.  
  1828. extern pascal ComponentResult SGGrabFrame(SGChannel c, short bufferNum)
  1829.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x010C, 0x7000, 0xA82A);
  1830.  
  1831. extern pascal ComponentResult SGGrabFrameComplete(SGChannel c, short bufferNum, Boolean *done)
  1832.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x010D, 0x7000, 0xA82A);
  1833.  
  1834. extern pascal ComponentResult SGDisplayFrame(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  1835.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x010E, 0x7000, 0xA82A);
  1836.  
  1837. extern pascal ComponentResult SGCompressFrame(SGChannel c, short bufferNum)
  1838.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x010F, 0x7000, 0xA82A);
  1839.  
  1840. extern pascal ComponentResult SGCompressFrameComplete(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci)
  1841.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0110, 0x7000, 0xA82A);
  1842.  
  1843. extern pascal ComponentResult SGAddFrame(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci)
  1844.  FIVEWORDINLINE(0x2F3C, 0x000E, 0x0111, 0x7000, 0xA82A);
  1845.  
  1846. extern pascal ComponentResult SGTransferFrameForCompress(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  1847.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0112, 0x7000, 0xA82A);
  1848.  
  1849. extern pascal ComponentResult SGSetCompressBuffer(SGChannel c, short depth, const Rect *compressSize)
  1850.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0113, 0x7000, 0xA82A);
  1851.  
  1852. extern pascal ComponentResult SGGetCompressBuffer(SGChannel c, short *depth, Rect *compressSize)
  1853.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0114, 0x7000, 0xA82A);
  1854.  
  1855. extern pascal ComponentResult SGGetBufferInfo(SGChannel c, short bufferNum, PixMapHandle *bufferPM, Rect *bufferRect, GWorldPtr *compressBuffer, Rect *compressBufferRect)
  1856.  FIVEWORDINLINE(0x2F3C, 0x0012, 0x0115, 0x7000, 0xA82A);
  1857.  
  1858. extern pascal ComponentResult SGSetUseScreenBuffer(SGChannel c, Boolean useScreenBuffer)
  1859.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0116, 0x7000, 0xA82A);
  1860.  
  1861. extern pascal ComponentResult SGGetUseScreenBuffer(SGChannel c, Boolean *useScreenBuffer)
  1862.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0117, 0x7000, 0xA82A);
  1863.  
  1864. extern pascal ComponentResult SGGrabCompressComplete(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *tr)
  1865.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0118, 0x7000, 0xA82A);
  1866.  
  1867. extern pascal ComponentResult SGDisplayCompress(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn)
  1868.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0119, 0x7000, 0xA82A);
  1869.  
  1870. extern pascal ComponentResult SGSetFrameRate(SGChannel c, Fixed frameRate)
  1871.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x011A, 0x7000, 0xA82A);
  1872.  
  1873. extern pascal ComponentResult SGGetFrameRate(SGChannel c, Fixed *frameRate)
  1874.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x011B, 0x7000, 0xA82A);
  1875.  
  1876. extern pascal ComponentResult SGSetPreferredPacketSize(SGChannel c, long preferredPacketSizeInBytes)
  1877.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0121, 0x7000, 0xA82A);
  1878.  
  1879. extern pascal ComponentResult SGGetPreferredPacketSize(SGChannel c, long *preferredPacketSizeInBytes)
  1880.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0122, 0x7000, 0xA82A);
  1881.  
  1882. extern pascal ComponentResult SGSetUserVideoCompressorList(SGChannel c, Handle compressorTypes)
  1883.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0123, 0x7000, 0xA82A);
  1884.  
  1885. extern pascal ComponentResult SGGetUserVideoCompressorList(SGChannel c, Handle *compressorTypes)
  1886.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0124, 0x7000, 0xA82A);
  1887.  
  1888. /*** Sequence Grab SOUND CHANNEL Component Stuff ***/
  1889. /*
  1890.     Sound stuff
  1891. */
  1892. extern pascal ComponentResult SGSetSoundInputDriver(SGChannel c, ConstStr255Param driverName)
  1893.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1894.  
  1895. extern pascal long SGGetSoundInputDriver(SGChannel c)
  1896.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0101, 0x7000, 0xA82A);
  1897.  
  1898. extern pascal ComponentResult SGSoundInputDriverChanged(SGChannel c)
  1899.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0102, 0x7000, 0xA82A);
  1900.  
  1901. extern pascal ComponentResult SGSetSoundRecordChunkSize(SGChannel c, long seconds)
  1902.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1903.  
  1904. extern pascal long SGGetSoundRecordChunkSize(SGChannel c)
  1905.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0104, 0x7000, 0xA82A);
  1906.  
  1907. extern pascal ComponentResult SGSetSoundInputRate(SGChannel c, Fixed rate)
  1908.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  1909.  
  1910. extern pascal Fixed SGGetSoundInputRate(SGChannel c)
  1911.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  1912.  
  1913. extern pascal ComponentResult SGSetSoundInputParameters(SGChannel c, short sampleSize, short numChannels, OSType compressionType)
  1914.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  1915.  
  1916. extern pascal ComponentResult SGGetSoundInputParameters(SGChannel c, short *sampleSize, short *numChannels, OSType *compressionType)
  1917.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A);
  1918.  
  1919. extern pascal ComponentResult SGSetAdditionalSoundRates(SGChannel c, Handle rates)
  1920.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  1921.  
  1922. extern pascal ComponentResult SGGetAdditionalSoundRates(SGChannel c, Handle *rates)
  1923.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  1924.  
  1925. /*
  1926.     Text stuff
  1927. */
  1928. extern pascal ComponentResult SGSetFontName(SGChannel c, StringPtr pstr)
  1929.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1930.  
  1931. extern pascal ComponentResult SGSetFontSize(SGChannel c, short fontSize)
  1932.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0101, 0x7000, 0xA82A);
  1933.  
  1934. extern pascal ComponentResult SGSetTextForeColor(SGChannel c, RGBColor *theColor)
  1935.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  1936.  
  1937. extern pascal ComponentResult SGSetTextBackColor(SGChannel c, RGBColor *theColor)
  1938.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1939.  
  1940. extern pascal ComponentResult SGSetJustification(SGChannel c, short just)
  1941.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0104, 0x7000, 0xA82A);
  1942.  
  1943. extern pascal ComponentResult SGGetTextReturnToSpaceValue(SGChannel c, short *rettospace)
  1944.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  1945.  
  1946. extern pascal ComponentResult SGSetTextReturnToSpaceValue(SGChannel c, short rettospace)
  1947.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0106, 0x7000, 0xA82A);
  1948.  
  1949. /*
  1950.     Music stuff
  1951. */
  1952. extern pascal ComponentResult SGGetInstrument(SGChannel c, ToneDescription *td)
  1953.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1954.  
  1955. extern pascal ComponentResult SGSetInstrument(SGChannel c, ToneDescription *td)
  1956.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1957.  
  1958.  
  1959. enum {
  1960.     sgChannelAtom                = 'chan',
  1961.     sgChannelSettingsAtom        = 'ctom',
  1962.     sgChannelDescription        = 'cdsc',
  1963.     sgChannelSettings            = 'cset'
  1964. };
  1965.  
  1966.  
  1967. enum {
  1968.     sgDeviceNameType            = 'name',
  1969.     sgUsageType                    = 'use ',
  1970.     sgPlayFlagsType                = 'plyf',
  1971.     sgClipType                    = 'clip',
  1972.     sgMatrixType                = 'mtrx',
  1973.     sgVolumeType                = 'volu'
  1974. };
  1975.  
  1976.  
  1977. enum {
  1978.     sgPanelSettingsAtom            = 'ptom',
  1979.     sgPanelDescription            = 'pdsc',
  1980.     sgPanelSettings                = 'pset'
  1981. };
  1982.  
  1983.  
  1984. enum {
  1985.     sgcSoundCompressionType        = 'scmp',
  1986.     sgcSoundSampleRateType        = 'srat',
  1987.     sgcSoundChannelCountType    = 'schn',
  1988.     sgcSoundSampleSizeType        = 'ssiz',
  1989.     sgcSoundInputType            = 'sinp',
  1990.     sgcSoundGainType            = 'gain'
  1991. };
  1992.  
  1993.  
  1994. enum {
  1995.     sgcVideoHueType                = 'hue ',
  1996.     sgcVideoSaturationType        = 'satr',
  1997.     sgcVideoContrastType        = 'trst',
  1998.     sgcVideoSharpnessType        = 'shrp',
  1999.     sgcVideoBrigtnessType        = 'brit',
  2000.     sgcVideoBlackLevelType        = 'blkl',
  2001.     sgcVideoWhiteLevelType        = 'whtl',
  2002.     sgcVideoInputType            = 'vinp',
  2003.     sgcVideoFormatType            = 'vstd',
  2004.     sgcVideoFilterType            = 'vflt',
  2005.     sgcVideoRectType            = 'vrct',
  2006.     sgcVideoDigitizerType        = 'vdig'
  2007. };
  2008.  
  2009. /* UPP call backs */
  2010.  
  2011. #if GENERATINGCFM
  2012. #else
  2013. #endif
  2014.  
  2015. enum {
  2016.     uppSCModalFilterProcInfo = kPascalStackBased
  2017.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  2018.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogPtr)))
  2019.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord *)))
  2020.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short *)))
  2021.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  2022.     uppSCModalHookProcInfo = kPascalStackBased
  2023.          | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  2024.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogPtr)))
  2025.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2026.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *)))
  2027.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  2028.     uppTweenerDataProcInfo = kPascalStackBased
  2029.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2030.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(TweenRecord *)))
  2031.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *)))
  2032.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  2033.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  2034.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(Handle)))
  2035.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(ICMCompletionProcRecordPtr)))
  2036.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(ProcPtr)))
  2037.          | STACK_ROUTINE_PARAMETER(8, SIZE_CODE(sizeof(void *))),
  2038.     uppDataHCompletionProcInfo = kPascalStackBased
  2039.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  2040.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  2041.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(OSErr))),
  2042.     uppVdigIntProcInfo = kPascalStackBased
  2043.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  2044.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))),
  2045.     uppSGDataProcInfo = kPascalStackBased
  2046.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  2047.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2048.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Ptr)))
  2049.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  2050.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long *)))
  2051.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
  2052.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(TimeValue)))
  2053.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(short)))
  2054.          | STACK_ROUTINE_PARAMETER(8, SIZE_CODE(sizeof(long))),
  2055.     uppSGModalFilterProcInfo = kPascalStackBased
  2056.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  2057.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogPtr)))
  2058.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord *)))
  2059.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short *)))
  2060.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  2061.     uppSGGrabBottleProcInfo = kPascalStackBased
  2062.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2063.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2064.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2065.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
  2066.     uppSGGrabCompleteBottleProcInfo = kPascalStackBased
  2067.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2068.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2069.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2070.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Boolean *)))
  2071.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  2072.     uppSGDisplayBottleProcInfo = kPascalStackBased
  2073.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2074.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2075.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2076.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MatrixRecord *)))
  2077.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(RgnHandle)))
  2078.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2079.     uppSGCompressBottleProcInfo = kPascalStackBased
  2080.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2081.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2082.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2083.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
  2084.     uppSGCompressCompleteBottleProcInfo = kPascalStackBased
  2085.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2086.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2087.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2088.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Boolean *)))
  2089.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(SGCompressInfo *)))
  2090.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2091.     uppSGAddFrameBottleProcInfo = kPascalStackBased
  2092.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2093.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2094.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2095.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(TimeValue)))
  2096.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(TimeScale)))
  2097.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(const SGCompressInfo *)))
  2098.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(long))),
  2099.     uppSGTransferFrameBottleProcInfo = kPascalStackBased
  2100.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2101.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2102.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2103.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MatrixRecord *)))
  2104.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(RgnHandle)))
  2105.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2106.     uppSGGrabCompressCompleteBottleProcInfo = kPascalStackBased
  2107.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2108.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2109.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean *)))
  2110.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(SGCompressInfo *)))
  2111.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(TimeRecord *)))
  2112.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2113.     uppSGDisplayCompressBottleProcInfo = kPascalStackBased
  2114.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2115.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2116.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Ptr)))
  2117.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(ImageDescriptionHandle)))
  2118.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(MatrixRecord *)))
  2119.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(RgnHandle)))
  2120.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(long)))
  2121. };
  2122.  
  2123. #if GENERATINGCFM
  2124. #define NewSCModalFilterProc(userRoutine)        \
  2125.         (SCModalFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalFilterProcInfo, GetCurrentArchitecture())
  2126. #define NewSCModalHookProc(userRoutine)        \
  2127.         (SCModalHookUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalHookProcInfo, GetCurrentArchitecture())
  2128. #define NewTweenerDataProc(userRoutine)        \
  2129.         (TweenerDataUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture())
  2130. #define NewDataHCompletionProc(userRoutine)        \
  2131.         (DataHCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDataHCompletionProcInfo, GetCurrentArchitecture())
  2132. #define NewVdigIntProc(userRoutine)        \
  2133.         (VdigIntUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppVdigIntProcInfo, GetCurrentArchitecture())
  2134. #define NewSGDataProc(userRoutine)        \
  2135.         (SGDataUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDataProcInfo, GetCurrentArchitecture())
  2136. #define NewSGModalFilterProc(userRoutine)        \
  2137.         (SGModalFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGModalFilterProcInfo, GetCurrentArchitecture())
  2138. #define NewSGGrabBottleProc(userRoutine)        \
  2139.         (SGGrabBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabBottleProcInfo, GetCurrentArchitecture())
  2140. #define NewSGGrabCompleteBottleProc(userRoutine)        \
  2141.         (SGGrabCompleteBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompleteBottleProcInfo, GetCurrentArchitecture())
  2142. #define NewSGDisplayBottleProc(userRoutine)        \
  2143.         (SGDisplayBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayBottleProcInfo, GetCurrentArchitecture())
  2144. #define NewSGCompressBottleProc(userRoutine)        \
  2145.         (SGCompressBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressBottleProcInfo, GetCurrentArchitecture())
  2146. #define NewSGCompressCompleteBottleProc(userRoutine)        \
  2147.         (SGCompressCompleteBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  2148. #define NewSGAddFrameBottleProc(userRoutine)        \
  2149.         (SGAddFrameBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGAddFrameBottleProcInfo, GetCurrentArchitecture())
  2150. #define NewSGTransferFrameBottleProc(userRoutine)        \
  2151.         (SGTransferFrameBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGTransferFrameBottleProcInfo, GetCurrentArchitecture())
  2152. #define NewSGGrabCompressCompleteBottleProc(userRoutine)        \
  2153.         (SGGrabCompressCompleteBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  2154. #define NewSGDisplayCompressBottleProc(userRoutine)        \
  2155.         (SGDisplayCompressBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayCompressBottleProcInfo, GetCurrentArchitecture())
  2156. #else
  2157. #define NewSCModalFilterProc(userRoutine)        \
  2158.         ((SCModalFilterUPP) (userRoutine))
  2159. #define NewSCModalHookProc(userRoutine)        \
  2160.         ((SCModalHookUPP) (userRoutine))
  2161. #define NewTweenerDataProc(userRoutine)        \
  2162.         ((TweenerDataUPP) (userRoutine))
  2163. #define NewDataHCompletionProc(userRoutine)        \
  2164.         ((DataHCompletionUPP) (userRoutine))
  2165. #define NewVdigIntProc(userRoutine)        \
  2166.         ((VdigIntUPP) (userRoutine))
  2167. #define NewSGDataProc(userRoutine)        \
  2168.         ((SGDataUPP) (userRoutine))
  2169. #define NewSGModalFilterProc(userRoutine)        \
  2170.         ((SGModalFilterUPP) (userRoutine))
  2171. #define NewSGGrabBottleProc(userRoutine)        \
  2172.         ((SGGrabBottleUPP) (userRoutine))
  2173. #define NewSGGrabCompleteBottleProc(userRoutine)        \
  2174.         ((SGGrabCompleteBottleUPP) (userRoutine))
  2175. #define NewSGDisplayBottleProc(userRoutine)        \
  2176.         ((SGDisplayBottleUPP) (userRoutine))
  2177. #define NewSGCompressBottleProc(userRoutine)        \
  2178.         ((SGCompressBottleUPP) (userRoutine))
  2179. #define NewSGCompressCompleteBottleProc(userRoutine)        \
  2180.         ((SGCompressCompleteBottleUPP) (userRoutine))
  2181. #define NewSGAddFrameBottleProc(userRoutine)        \
  2182.         ((SGAddFrameBottleUPP) (userRoutine))
  2183. #define NewSGTransferFrameBottleProc(userRoutine)        \
  2184.         ((SGTransferFrameBottleUPP) (userRoutine))
  2185. #define NewSGGrabCompressCompleteBottleProc(userRoutine)        \
  2186.         ((SGGrabCompressCompleteBottleUPP) (userRoutine))
  2187. #define NewSGDisplayCompressBottleProc(userRoutine)        \
  2188.         ((SGDisplayCompressBottleUPP) (userRoutine))
  2189. #endif
  2190.  
  2191. #if GENERATINGCFM
  2192. #define CallSCModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refcon)        \
  2193.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSCModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refcon))
  2194. #define CallSCModalHookProc(userRoutine, theDialog, itemHit, params, refcon)        \
  2195.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSCModalHookProcInfo, (theDialog), (itemHit), (params), (refcon))
  2196. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon)        \
  2197.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTweenerDataProcInfo, (tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  2198. #define CallDataHCompletionProc(userRoutine, request, refcon, err)        \
  2199.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDataHCompletionProcInfo, (request), (refcon), (err))
  2200. #define CallVdigIntProc(userRoutine, flags, refcon)        \
  2201.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppVdigIntProcInfo, (flags), (refcon))
  2202. #define CallSGDataProc(userRoutine, c, p, len, offset, chRefCon, time, writeType, refCon)        \
  2203.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGDataProcInfo, (c), (p), (len), (offset), (chRefCon), (time), (writeType), (refCon))
  2204. #define CallSGModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refCon)        \
  2205.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refCon))
  2206. #define CallSGGrabBottleProc(userRoutine, c, bufferNum, refCon)        \
  2207.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGGrabBottleProcInfo, (c), (bufferNum), (refCon))
  2208. #define CallSGGrabCompleteBottleProc(userRoutine, c, bufferNum, done, refCon)        \
  2209.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGGrabCompleteBottleProcInfo, (c), (bufferNum), (done), (refCon))
  2210. #define CallSGDisplayBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2211.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGDisplayBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  2212. #define CallSGCompressBottleProc(userRoutine, c, bufferNum, refCon)        \
  2213.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGCompressBottleProcInfo, (c), (bufferNum), (refCon))
  2214. #define CallSGCompressCompleteBottleProc(userRoutine, c, bufferNum, done, ci, refCon)        \
  2215.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGCompressCompleteBottleProcInfo, (c), (bufferNum), (done), (ci), (refCon))
  2216. #define CallSGAddFrameBottleProc(userRoutine, c, bufferNum, atTime, scale, ci, refCon)        \
  2217.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGAddFrameBottleProcInfo, (c), (bufferNum), (atTime), (scale), (ci), (refCon))
  2218. #define CallSGTransferFrameBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2219.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGTransferFrameBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  2220. #define CallSGGrabCompressCompleteBottleProc(userRoutine, c, done, ci, t, refCon)        \
  2221.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGGrabCompressCompleteBottleProcInfo, (c), (done), (ci), (t), (refCon))
  2222. #define CallSGDisplayCompressBottleProc(userRoutine, c, dataPtr, desc, mp, clipRgn, refCon)        \
  2223.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGDisplayCompressBottleProcInfo, (c), (dataPtr), (desc), (mp), (clipRgn), (refCon))
  2224. #else
  2225. #define CallSCModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refcon)        \
  2226.         (*(userRoutine))((theDialog), (theEvent), (itemHit), (refcon))
  2227. #define CallSCModalHookProc(userRoutine, theDialog, itemHit, params, refcon)        \
  2228.         (*(userRoutine))((theDialog), (itemHit), (params), (refcon))
  2229. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon)        \
  2230.         (*(userRoutine))((tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  2231. #define CallDataHCompletionProc(userRoutine, request, refcon, err)        \
  2232.         (*(userRoutine))((request), (refcon), (err))
  2233. #define CallVdigIntProc(userRoutine, flags, refcon)        \
  2234.         (*(userRoutine))((flags), (refcon))
  2235. #define CallSGDataProc(userRoutine, c, p, len, offset, chRefCon, time, writeType, refCon)        \
  2236.         (*(userRoutine))((c), (p), (len), (offset), (chRefCon), (time), (writeType), (refCon))
  2237. #define CallSGModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refCon)        \
  2238.         (*(userRoutine))((theDialog), (theEvent), (itemHit), (refCon))
  2239. #define CallSGGrabBottleProc(userRoutine, c, bufferNum, refCon)        \
  2240.         (*(userRoutine))((c), (bufferNum), (refCon))
  2241. #define CallSGGrabCompleteBottleProc(userRoutine, c, bufferNum, done, refCon)        \
  2242.         (*(userRoutine))((c), (bufferNum), (done), (refCon))
  2243. #define CallSGDisplayBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2244.         (*(userRoutine))((c), (bufferNum), (mp), (clipRgn), (refCon))
  2245. #define CallSGCompressBottleProc(userRoutine, c, bufferNum, refCon)        \
  2246.         (*(userRoutine))((c), (bufferNum), (refCon))
  2247. #define CallSGCompressCompleteBottleProc(userRoutine, c, bufferNum, done, ci, refCon)        \
  2248.         (*(userRoutine))((c), (bufferNum), (done), (ci), (refCon))
  2249. #define CallSGAddFrameBottleProc(userRoutine, c, bufferNum, atTime, scale, ci, refCon)        \
  2250.         (*(userRoutine))((c), (bufferNum), (atTime), (scale), (ci), (refCon))
  2251. #define CallSGTransferFrameBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2252.         (*(userRoutine))((c), (bufferNum), (mp), (clipRgn), (refCon))
  2253. #define CallSGGrabCompressCompleteBottleProc(userRoutine, c, done, ci, t, refCon)        \
  2254.         (*(userRoutine))((c), (done), (ci), (t), (refCon))
  2255. #define CallSGDisplayCompressBottleProc(userRoutine, c, dataPtr, desc, mp, clipRgn, refCon)        \
  2256.         (*(userRoutine))((c), (dataPtr), (desc), (mp), (clipRgn), (refCon))
  2257. #endif
  2258.  
  2259. /* selectors for component calls */
  2260. enum {
  2261.     kClockGetTimeSelect                                = 0x0001,
  2262.     kClockNewCallBackSelect                            = 0x0002,
  2263.     kClockDisposeCallBackSelect                        = 0x0003,
  2264.     kClockCallMeWhenSelect                            = 0x0004,
  2265.     kClockCancelCallBackSelect                        = 0x0005,
  2266.     kClockRateChangedSelect                            = 0x0006,
  2267.     kClockTimeChangedSelect                            = 0x0007,
  2268.     kClockSetTimeBaseSelect                            = 0x0008,
  2269.     kClockStartStopChangedSelect                    = 0x0009,
  2270.     kClockGetRateSelect                                = 0x000A,
  2271.     kSCGetCompressionExtendedSelect                    = 0x0001,
  2272.     kSCPositionRectSelect                            = 0x0002,
  2273.     kSCPositionDialogSelect                            = 0x0003,
  2274.     kSCSetTestImagePictHandleSelect                    = 0x0004,
  2275.     kSCSetTestImagePictFileSelect                    = 0x0005,
  2276.     kSCSetTestImagePixMapSelect                        = 0x0006,
  2277.     kSCGetBestDeviceRectSelect                        = 0x0007,
  2278.     kSCRequestImageSettingsSelect                    = 0x000A,
  2279.     kSCCompressImageSelect                            = 0x000B,
  2280.     kSCCompressPictureSelect                        = 0x000C,
  2281.     kSCCompressPictureFileSelect                    = 0x000D,
  2282.     kSCRequestSequenceSettingsSelect                = 0x000E,
  2283.     kSCCompressSequenceBeginSelect                    = 0x000F,
  2284.     kSCCompressSequenceFrameSelect                    = 0x0010,
  2285.     kSCCompressSequenceEndSelect                    = 0x0011,
  2286.     kSCDefaultPictHandleSettingsSelect                = 0x0012,
  2287.     kSCDefaultPictFileSettingsSelect                = 0x0013,
  2288.     kSCDefaultPixMapSettingsSelect                    = 0x0014,
  2289.     kSCGetInfoSelect                                = 0x0015,
  2290.     kSCSetInfoSelect                                = 0x0016,
  2291.     kSCNewGWorldSelect                                = 0x0017,
  2292.     kSCSetCompressFlagsSelect                        = 0x0018,
  2293.     kSCGetCompressFlagsSelect                        = 0x0019,
  2294.     kTweenerInitializeSelect                        = 0x0001,
  2295.     kTweenerDoTweenSelect                            = 0x0002,
  2296.     kTweenerResetSelect                                = 0x0003,
  2297.     kTCGetCurrentTimeCodeSelect                        = 0x0101,
  2298.     kTCGetTimeCodeAtTimeSelect                        = 0x0102,
  2299.     kTCTimeCodeToStringSelect                        = 0x0103,
  2300.     kTCTimeCodeToFrameNumberSelect                    = 0x0104,
  2301.     kTCFrameNumberToTimeCodeSelect                    = 0x0105,
  2302.     kTCGetSourceRefSelect                            = 0x0106,
  2303.     kTCSetSourceRefSelect                            = 0x0107,
  2304.     kTCSetTimeCodeFlagsSelect                        = 0x0108,
  2305.     kTCGetTimeCodeFlagsSelect                        = 0x0109,
  2306.     kTCSetDisplayOptionsSelect                        = 0x010A,
  2307.     kTCGetDisplayOptionsSelect                        = 0x010B,
  2308.     kMovieImportHandleSelect                        = 0x0001,
  2309.     kMovieImportFileSelect                            = 0x0002,
  2310.     kMovieImportSetSampleDurationSelect                = 0x0003,
  2311.     kMovieImportSetSampleDescriptionSelect            = 0x0004,
  2312.     kMovieImportSetMediaFileSelect                    = 0x0005,
  2313.     kMovieImportSetDimensionsSelect                    = 0x0006,
  2314.     kMovieImportSetChunkSizeSelect                    = 0x0007,
  2315.     kMovieImportSetProgressProcSelect                = 0x0008,
  2316.     kMovieImportSetAuxiliaryDataSelect                = 0x0009,
  2317.     kMovieImportSetFromScrapSelect                    = 0x000A,
  2318.     kMovieImportDoUserDialogSelect                    = 0x000B,
  2319.     kMovieImportSetDurationSelect                    = 0x000C,
  2320.     kMovieImportGetAuxiliaryDataTypeSelect            = 0x000D,
  2321.     kMovieImportValidateSelect                        = 0x000E,
  2322.     kMovieImportGetFileTypeSelect                    = 0x000F,
  2323.     kMovieImportDataRefSelect                        = 0x0010,
  2324.     kMovieImportGetSampleDescriptionSelect            = 0x0011,
  2325.     kMovieExportToHandleSelect                        = 0x0080,
  2326.     kMovieExportToFileSelect                        = 0x0081,
  2327.     kMovieExportGetAuxiliaryDataSelect                = 0x0083,
  2328.     kMovieExportSetProgressProcSelect                = 0x0084,
  2329.     kMovieExportSetSampleDescriptionSelect            = 0x0085,
  2330.     kMovieExportDoUserDialogSelect                    = 0x0086,
  2331.     kMovieExportGetCreatorTypeSelect                = 0x0087,
  2332.     kTextExportGetDisplayDataSelect                    = 0x0100,
  2333.     kTextExportGetTimeFractionSelect                = 0x0101,
  2334.     kTextExportSetTimeFractionSelect                = 0x0102,
  2335.     kTextExportGetSettingsSelect                    = 0x0103,
  2336.     kTextExportSetSettingsSelect                    = 0x0104,
  2337.     kMIDIImportGetSettingsSelect                    = 0x0100,
  2338.     kMIDIImportSetSettingsSelect                    = 0x0101,
  2339.     kPreviewShowDataSelect                            = 0x0001,
  2340.     kPreviewMakePreviewSelect                        = 0x0002,
  2341.     kPreviewMakePreviewReferenceSelect                = 0x0003,
  2342.     kPreviewEventSelect                                = 0x0004,
  2343.     kDataHGetDataSelect                                = 0x0002,
  2344.     kDataHPutDataSelect                                = 0x0003,
  2345.     kDataHFlushDataSelect                            = 0x0004,
  2346.     kDataHOpenForWriteSelect                        = 0x0005,
  2347.     kDataHCloseForWriteSelect                        = 0x0006,
  2348.     kDataHOpenForReadSelect                            = 0x0008,
  2349.     kDataHCloseForReadSelect                        = 0x0009,
  2350.     kDataHSetDataRefSelect                            = 0x000A,
  2351.     kDataHGetDataRefSelect                            = 0x000B,
  2352.     kDataHCompareDataRefSelect                        = 0x000C,
  2353.     kDataHTaskSelect                                = 0x000D,
  2354.     kDataHScheduleDataSelect                        = 0x000E,
  2355.     kDataHFinishDataSelect                            = 0x000F,
  2356.     kDataHFlushCacheSelect                            = 0x0010,
  2357.     kDataHResolveDataRefSelect                        = 0x0011,
  2358.     kDataHGetFileSizeSelect                            = 0x0012,
  2359.     kDataHCanUseDataRefSelect                        = 0x0013,
  2360.     kDataHGetVolumeListSelect                        = 0x0014,
  2361.     kDataHWriteSelect                                = 0x0015,
  2362.     kDataHPreextendSelect                            = 0x0016,
  2363.     kDataHSetFileSizeSelect                            = 0x0017,
  2364.     kDataHGetFreeSpaceSelect                        = 0x0018,
  2365.     kDataHCreateFileSelect                            = 0x0019,
  2366.     kDataHGetPreferredBlockSizeSelect                = 0x001A,
  2367.     kDataHGetDeviceIndexSelect                        = 0x001B,
  2368.     kDataHIsStreamingDataHandlerSelect                = 0x001C,
  2369.     kDataHGetDataInBufferSelect                        = 0x001D,
  2370.     kDataHGetScheduleAheadTimeSelect                = 0x001E,
  2371.     kDataHSetCacheSizeLimitSelect                    = 0x001F,
  2372.     kDataHGetCacheSizeLimitSelect                    = 0x0020,
  2373.     kDataHGetMovieSelect                            = 0x0021,
  2374.     kDataHAddMovieSelect                            = 0x0022,
  2375.     kDataHUpdateMovieSelect                            = 0x0023,
  2376.     kDataHDoesBufferSelect                            = 0x0024,
  2377.     kDataHGetFileNameSelect                            = 0x0025,
  2378.     kDataHPlaybackHintsSelect                        = 0x0103,
  2379.     kVDGetMaxSrcRectSelect                            = 0x0001,
  2380.     kVDGetActiveSrcRectSelect                        = 0x0002,
  2381.     kVDSetDigitizerRectSelect                        = 0x0003,
  2382.     kVDGetDigitizerRectSelect                        = 0x0004,
  2383.     kVDGetVBlankRectSelect                            = 0x0005,
  2384.     kVDGetMaskPixMapSelect                            = 0x0006,
  2385.     kVDGetPlayThruDestinationSelect                    = 0x0008,
  2386.     kVDUseThisCLUTSelect                            = 0x0009,
  2387.     kVDSetInputGammaValueSelect                        = 0x000A,
  2388.     kVDGetInputGammaValueSelect                        = 0x000B,
  2389.     kVDSetBrightnessSelect                            = 0x000C,
  2390.     kVDGetBrightnessSelect                            = 0x000D,
  2391.     kVDSetContrastSelect                            = 0x000E,
  2392.     kVDSetHueSelect                                    = 0x000F,
  2393.     kVDSetSharpnessSelect                            = 0x0010,
  2394.     kVDSetSaturationSelect                            = 0x0011,
  2395.     kVDGetContrastSelect                            = 0x0012,
  2396.     kVDGetHueSelect                                    = 0x0013,
  2397.     kVDGetSharpnessSelect                            = 0x0014,
  2398.     kVDGetSaturationSelect                            = 0x0015,
  2399.     kVDGrabOneFrameSelect                            = 0x0016,
  2400.     kVDGetMaxAuxBufferSelect                        = 0x0017,
  2401.     kVDGetDigitizerInfoSelect                        = 0x0019,
  2402.     kVDGetCurrentFlagsSelect                        = 0x001A,
  2403.     kVDSetKeyColorSelect                            = 0x001B,
  2404.     kVDGetKeyColorSelect                            = 0x001C,
  2405.     kVDAddKeyColorSelect                            = 0x001D,
  2406.     kVDGetNextKeyColorSelect                        = 0x001E,
  2407.     kVDSetKeyColorRangeSelect                        = 0x001F,
  2408.     kVDGetKeyColorRangeSelect                        = 0x0020,
  2409.     kVDSetDigitizerUserInterruptSelect                = 0x0021,
  2410.     kVDSetInputColorSpaceModeSelect                    = 0x0022,
  2411.     kVDGetInputColorSpaceModeSelect                    = 0x0023,
  2412.     kVDSetClipStateSelect                            = 0x0024,
  2413.     kVDGetClipStateSelect                            = 0x0025,
  2414.     kVDSetClipRgnSelect                                = 0x0026,
  2415.     kVDClearClipRgnSelect                            = 0x0027,
  2416.     kVDGetCLUTInUseSelect                            = 0x0028,
  2417.     kVDSetPLLFilterTypeSelect                        = 0x0029,
  2418.     kVDGetPLLFilterTypeSelect                        = 0x002A,
  2419.     kVDGetMaskandValueSelect                        = 0x002B,
  2420.     kVDSetMasterBlendLevelSelect                    = 0x002C,
  2421.     kVDSetPlayThruDestinationSelect                    = 0x002D,
  2422.     kVDSetPlayThruOnOffSelect                        = 0x002E,
  2423.     kVDSetFieldPreferenceSelect                        = 0x002F,
  2424.     kVDGetFieldPreferenceSelect                        = 0x0030,
  2425.     kVDPreflightDestinationSelect                    = 0x0032,
  2426.     kVDPreflightGlobalRectSelect                    = 0x0033,
  2427.     kVDSetPlayThruGlobalRectSelect                    = 0x0034,
  2428.     kVDSetInputGammaRecordSelect                    = 0x0035,
  2429.     kVDGetInputGammaRecordSelect                    = 0x0036,
  2430.     kVDSetBlackLevelValueSelect                        = 0x0037,
  2431.     kVDGetBlackLevelValueSelect                        = 0x0038,
  2432.     kVDSetWhiteLevelValueSelect                        = 0x0039,
  2433.     kVDGetWhiteLevelValueSelect                        = 0x003A,
  2434.     kVDGetVideoDefaultsSelect                        = 0x003B,
  2435.     kVDGetNumberOfInputsSelect                        = 0x003C,
  2436.     kVDGetInputFormatSelect                            = 0x003D,
  2437.     kVDSetInputSelect                                = 0x003E,
  2438.     kVDGetInputSelect                                = 0x003F,
  2439.     kVDSetInputStandardSelect                        = 0x0040,
  2440.     kVDSetupBuffersSelect                            = 0x0041,
  2441.     kVDGrabOneFrameAsyncSelect                        = 0x0042,
  2442.     kVDDoneSelect                                    = 0x0043,
  2443.     kVDSetCompressionSelect                            = 0x0044,
  2444.     kVDCompressOneFrameAsyncSelect                    = 0x0045,
  2445.     kVDCompressDoneSelect                            = 0x0046,
  2446.     kVDReleaseCompressBufferSelect                    = 0x0047,
  2447.     kVDGetImageDescriptionSelect                    = 0x0048,
  2448.     kVDResetCompressSequenceSelect                    = 0x0049,
  2449.     kVDSetCompressionOnOffSelect                    = 0x004A,
  2450.     kVDGetCompressionTypesSelect                    = 0x004B,
  2451.     kVDSetTimeBaseSelect                            = 0x004C,
  2452.     kVDSetFrameRateSelect                            = 0x004D,
  2453.     kVDGetDataRateSelect                            = 0x004E,
  2454.     kVDGetSoundInputDriverSelect                    = 0x004F,
  2455.     kVDGetDMADepthsSelect                            = 0x0050,
  2456.     kVDGetPreferredTimeScaleSelect                    = 0x0051,
  2457.     kVDReleaseAsyncBuffersSelect                    = 0x0052,
  2458.     kVDSetDataRateSelect                            = 0x0054,
  2459.     kVDGetTimeCodeSelect                            = 0x0055,
  2460.     kVDUseSafeBuffersSelect                            = 0x0056,
  2461.     kVDGetSoundInputSourceSelect                    = 0x0057,
  2462.     kVDGetCompressionTimeSelect                        = 0x0058,
  2463.     kVDSetPreferredPacketSizeSelect                    = 0x0059,
  2464.     kSGInitializeSelect                                = 0x0001,
  2465.     kSGSetDataOutputSelect                            = 0x0002,
  2466.     kSGGetDataOutputSelect                            = 0x0003,
  2467.     kSGSetGWorldSelect                                = 0x0004,
  2468.     kSGGetGWorldSelect                                = 0x0005,
  2469.     kSGNewChannelSelect                                = 0x0006,
  2470.     kSGDisposeChannelSelect                            = 0x0007,
  2471.     kSGStartPreviewSelect                            = 0x0010,
  2472.     kSGStartRecordSelect                            = 0x0011,
  2473.     kSGIdleSelect                                    = 0x0012,
  2474.     kSGStopSelect                                    = 0x0013,
  2475.     kSGPauseSelect                                    = 0x0014,
  2476.     kSGPrepareSelect                                = 0x0015,
  2477.     kSGReleaseSelect                                = 0x0016,
  2478.     kSGGetMovieSelect                                = 0x0017,
  2479.     kSGSetMaximumRecordTimeSelect                    = 0x0018,
  2480.     kSGGetMaximumRecordTimeSelect                    = 0x0019,
  2481.     kSGGetStorageSpaceRemainingSelect                = 0x001A,
  2482.     kSGGetTimeRemainingSelect                        = 0x001B,
  2483.     kSGGrabPictSelect                                = 0x001C,
  2484.     kSGGetLastMovieResIDSelect                        = 0x001D,
  2485.     kSGSetFlagsSelect                                = 0x001E,
  2486.     kSGGetFlagsSelect                                = 0x001F,
  2487.     kSGSetDataProcSelect                            = 0x0020,
  2488.     kSGNewChannelFromComponentSelect                = 0x0021,
  2489.     kSGDisposeDeviceListSelect                        = 0x0022,
  2490.     kSGAppendDeviceListToMenuSelect                    = 0x0023,
  2491.     kSGSetSettingsSelect                            = 0x0024,
  2492.     kSGGetSettingsSelect                            = 0x0025,
  2493.     kSGGetIndChannelSelect                            = 0x0026,
  2494.     kSGUpdateSelect                                    = 0x0027,
  2495.     kSGGetPauseSelect                                = 0x0028,
  2496.     kSGSettingsDialogSelect                            = 0x0029,
  2497.     kSGGetAlignmentProcSelect                        = 0x002A,
  2498.     kSGSetChannelSettingsSelect                        = 0x002B,
  2499.     kSGGetChannelSettingsSelect                        = 0x002C,
  2500.     kSGGetModeSelect                                = 0x002D,
  2501.     kSGSetDataRefSelect                                = 0x002E,
  2502.     kSGGetDataRefSelect                                = 0x002F,
  2503.     kSGNewOutputSelect                                = 0x0030,
  2504.     kSGDisposeOutputSelect                            = 0x0031,
  2505.     kSGSetOutputFlagsSelect                            = 0x0032,
  2506.     kSGSetChannelOutputSelect                        = 0x0033,
  2507.     kSGGetDataOutputStorageSpaceRemainingSelect        = 0x0034,
  2508.     kSGHandleUpdateEventSelect                        = 0x0035,
  2509.     kSGWriteMovieDataSelect                            = 0x0100,
  2510.     kSGAddFrameReferenceSelect                        = 0x0101,
  2511.     kSGGetNextFrameReferenceSelect                    = 0x0102,
  2512.     kSGGetTimeBaseSelect                            = 0x0103,
  2513.     kSGSortDeviceListSelect                            = 0x0104,
  2514.     kSGAddMovieDataSelect                            = 0x0105,
  2515.     kSGChangedSourceSelect                            = 0x0106,
  2516.     kSGSetChannelUsageSelect                        = 0x0080,
  2517.     kSGGetChannelUsageSelect                        = 0x0081,
  2518.     kSGSetChannelBoundsSelect                        = 0x0082,
  2519.     kSGGetChannelBoundsSelect                        = 0x0083,
  2520.     kSGSetChannelVolumeSelect                        = 0x0084,
  2521.     kSGGetChannelVolumeSelect                        = 0x0085,
  2522.     kSGGetChannelInfoSelect                            = 0x0086,
  2523.     kSGSetChannelPlayFlagsSelect                    = 0x0087,
  2524.     kSGGetChannelPlayFlagsSelect                    = 0x0088,
  2525.     kSGSetChannelMaxFramesSelect                    = 0x0089,
  2526.     kSGGetChannelMaxFramesSelect                    = 0x008A,
  2527.     kSGSetChannelRefConSelect                        = 0x008B,
  2528.     kSGSetChannelClipSelect                            = 0x008C,
  2529.     kSGGetChannelClipSelect                            = 0x008D,
  2530.     kSGGetChannelSampleDescriptionSelect            = 0x008E,
  2531.     kSGGetChannelDeviceListSelect                    = 0x008F,
  2532.     kSGSetChannelDeviceSelect                        = 0x0090,
  2533.     kSGSetChannelMatrixSelect                        = 0x0091,
  2534.     kSGGetChannelMatrixSelect                        = 0x0092,
  2535.     kSGGetChannelTimeScaleSelect                    = 0x0093,
  2536.     kSGChannelPutPictureSelect                        = 0x0094,
  2537.     kSGChannelSetRequestedDataRateSelect            = 0x0095,
  2538.     kSGChannelGetRequestedDataRateSelect            = 0x0096,
  2539.     kSGChannelSetDataSourceNameSelect                = 0x0097,
  2540.     kSGChannelGetDataSourceNameSelect                = 0x0098,
  2541.     kSGInitChannelSelect                            = 0x0180,
  2542.     kSGWriteSamplesSelect                            = 0x0181,
  2543.     kSGGetDataRateSelect                            = 0x0182,
  2544.     kSGAlignChannelRectSelect                        = 0x0183,
  2545.     kSGPanelGetDitlSelect                            = 0x0200,
  2546.     kSGPanelGetTitleSelect                            = 0x0201,
  2547.     kSGPanelCanRunSelect                            = 0x0202,
  2548.     kSGPanelInstallSelect                            = 0x0203,
  2549.     kSGPanelEventSelect                                = 0x0204,
  2550.     kSGPanelItemSelect                                = 0x0205,
  2551.     kSGPanelRemoveSelect                            = 0x0206,
  2552.     kSGPanelSetGrabberSelect                        = 0x0207,
  2553.     kSGPanelSetResFileSelect                        = 0x0208,
  2554.     kSGPanelGetSettingsSelect                        = 0x0209,
  2555.     kSGPanelSetSettingsSelect                        = 0x020A,
  2556.     kSGPanelValidateInputSelect                        = 0x020B,
  2557.     kSGPanelSetEventFilterSelect                    = 0x020C,
  2558.     kSGGetSrcVideoBoundsSelect                        = 0x0100,
  2559.     kSGSetVideoRectSelect                            = 0x0101,
  2560.     kSGGetVideoRectSelect                            = 0x0102,
  2561.     kSGGetVideoCompressorTypeSelect                    = 0x0103,
  2562.     kSGSetVideoCompressorTypeSelect                    = 0x0104,
  2563.     kSGSetVideoCompressorSelect                        = 0x0105,
  2564.     kSGGetVideoCompressorSelect                        = 0x0106,
  2565.     kSGGetVideoDigitizerComponentSelect                = 0x0107,
  2566.     kSGSetVideoDigitizerComponentSelect                = 0x0108,
  2567.     kSGVideoDigitizerChangedSelect                    = 0x0109,
  2568.     kSGSetVideoBottlenecksSelect                    = 0x010A,
  2569.     kSGGetVideoBottlenecksSelect                    = 0x010B,
  2570.     kSGGrabFrameSelect                                = 0x010C,
  2571.     kSGGrabFrameCompleteSelect                        = 0x010D,
  2572.     kSGDisplayFrameSelect                            = 0x010E,
  2573.     kSGCompressFrameSelect                            = 0x010F,
  2574.     kSGCompressFrameCompleteSelect                    = 0x0110,
  2575.     kSGAddFrameSelect                                = 0x0111,
  2576.     kSGTransferFrameForCompressSelect                = 0x0112,
  2577.     kSGSetCompressBufferSelect                        = 0x0113,
  2578.     kSGGetCompressBufferSelect                        = 0x0114,
  2579.     kSGGetBufferInfoSelect                            = 0x0115,
  2580.     kSGSetUseScreenBufferSelect                        = 0x0116,
  2581.     kSGGetUseScreenBufferSelect                        = 0x0117,
  2582.     kSGGrabCompressCompleteSelect                    = 0x0118,
  2583.     kSGDisplayCompressSelect                        = 0x0119,
  2584.     kSGSetFrameRateSelect                            = 0x011A,
  2585.     kSGGetFrameRateSelect                            = 0x011B,
  2586.     kSGSetPreferredPacketSizeSelect                    = 0x0121,
  2587.     kSGGetPreferredPacketSizeSelect                    = 0x0122,
  2588.     kSGSetUserVideoCompressorListSelect                = 0x0123,
  2589.     kSGGetUserVideoCompressorListSelect                = 0x0124,
  2590.     kSGSetSoundInputDriverSelect                    = 0x0100,
  2591.     kSGGetSoundInputDriverSelect                    = 0x0101,
  2592.     kSGSoundInputDriverChangedSelect                = 0x0102,
  2593.     kSGSetSoundRecordChunkSizeSelect                = 0x0103,
  2594.     kSGGetSoundRecordChunkSizeSelect                = 0x0104,
  2595.     kSGSetSoundInputRateSelect                        = 0x0105,
  2596.     kSGGetSoundInputRateSelect                        = 0x0106,
  2597.     kSGSetSoundInputParametersSelect                = 0x0107,
  2598.     kSGGetSoundInputParametersSelect                = 0x0108,
  2599.     kSGSetAdditionalSoundRatesSelect                = 0x0109,
  2600.     kSGGetAdditionalSoundRatesSelect                = 0x010A,
  2601.     kSGSetFontNameSelect                            = 0x0100,
  2602.     kSGSetFontSizeSelect                            = 0x0101,
  2603.     kSGSetTextForeColorSelect                        = 0x0102,
  2604.     kSGSetTextBackColorSelect                        = 0x0103,
  2605.     kSGSetJustificationSelect                        = 0x0104,
  2606.     kSGGetTextReturnToSpaceValueSelect                = 0x0105,
  2607.     kSGSetTextReturnToSpaceValueSelect                = 0x0106,
  2608.     kSGGetInstrumentSelect                            = 0x0100,
  2609.     kSGSetInstrumentSelect                            = 0x0101
  2610. };
  2611.  
  2612. #if PRAGMA_ALIGN_SUPPORTED
  2613. #pragma options align=reset
  2614. #endif
  2615.  
  2616. #if PRAGMA_IMPORT_SUPPORTED
  2617. #pragma import off
  2618. #endif
  2619.  
  2620. #ifdef __cplusplus
  2621. }
  2622. #endif
  2623.  
  2624. #endif /* __QUICKTIMECOMPONENTS__ */
  2625.  
  2626.